Przeglądaj źródła

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

card007 4 lat temu
rodzic
commit
7ee6bb0824
21 zmienionych plików z 284 dodań i 131 usunięć
  1. 22 1
      src/main/java/com/style24/admin/biz/dao/TsaWithdrawDao.java
  2. 10 0
      src/main/java/com/style24/admin/biz/dao/TsaWmsWithdrawDao.java
  3. 45 33
      src/main/java/com/style24/admin/biz/service/TsaOcmService.java
  4. 20 5
      src/main/java/com/style24/admin/biz/service/TsaShoplinkerService.java
  5. 23 10
      src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java
  6. 15 0
      src/main/java/com/style24/admin/biz/service/TsaWmsWithdrawService.java
  7. 5 2
      src/main/java/com/style24/admin/biz/web/TsaCustomerController.java
  8. 3 2
      src/main/java/com/style24/persistence/domain/ExtmallOrder.java
  9. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsaOcm.xml
  10. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsaPoll.xml
  11. 24 5
      src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml
  12. 12 1
      src/main/java/com/style24/persistence/mybatis/wms/TsaWmsWithdraw.xml
  13. 2 2
      src/main/resources/config/application-style.yml
  14. 8 7
      src/main/webapp/WEB-INF/views/board/NoticeForm.html
  15. 3 1
      src/main/webapp/WEB-INF/views/customer/CustomerActiveListForm.html
  16. 57 54
      src/main/webapp/WEB-INF/views/customer/LmsPopupForm.html
  17. 1 1
      src/main/webapp/WEB-INF/views/shoplinker/ShoplinkerInvoiceSendForm.html
  18. 1 1
      src/main/webapp/WEB-INF/views/shoplinker/ShoplinkerOrderForm.html
  19. 1 1
      src/main/webapp/WEB-INF/views/shoplinker/ShoplinkerStockForm.html
  20. 26 3
      src/main/webapp/WEB-INF/views/withdraw/WithdrawDirectiveListForm.html
  21. 4 0
      src/main/webapp/ux/js/admin.popup.js

+ 22 - 1
src/main/java/com/style24/admin/biz/dao/TsaWithdrawDao.java

@@ -120,7 +120,7 @@ public interface TsaWithdrawDao {
 	Collection<Withdraw> getWithdrawDirectiveList(Withdraw withdraw);
 	
 	/**
-	 * 재회수지시
+	 * 재회수지시 detail
 	 * 
 	 * @param Withdraw
 	 * @return 
@@ -129,6 +129,16 @@ public interface TsaWithdrawDao {
 	 */
 	void updateReRecallOrder(Withdraw withdraw);
 	
+	/**
+	 * 재회수지시
+	 * 
+	 * @param Withdraw
+	 * @return 
+	 * @author moon
+	 * @since 2021. 05. 11
+	 */
+	void updateReRecallOrderChange(Withdraw withdraw);
+	
 	/**
 	 * 주문변경사유 변경
 	 * 
@@ -149,6 +159,17 @@ public interface TsaWithdrawDao {
 	 */
 	void updateChangeStat(WithdrawExc withdrawExc);
 	
+	/**
+	 * 주문변경번호상세 조회 
+	 * 
+	 * @param Withdraw
+	 * @return Collection<Withdraw>
+	 * @author moon
+	 * @since 2021. 06. 24
+	 */
+	Collection<Withdraw> getOrdChgDtlList(Withdraw withdraw);
+	
+	
 	
 	/**
 	 * 회수등록 - 조회(송장번호용)

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

@@ -5,6 +5,7 @@ import java.util.Collection;
 import org.springframework.dao.DataAccessException;
 
 import com.style24.persistence.domain.WmsWithdraw;
+import com.style24.persistence.domain.Withdraw;
 import com.style24.persistence.domain.Delivery;
 import com.style24.core.support.annotation.WmsDs;
 import org.springframework.stereotype.Repository;
@@ -60,5 +61,14 @@ public interface TsaWmsWithdrawDao {
 	 */
 	void deleteWmsTbIfDelifixQty(Delivery delivery);
 	
+	/**
+	 *  재회수지시
+	 * 
+	 * @param WmsWithdraw
+	 * @return int
+	 * @author moon
+	 * @since 2021. 06. 24
+	 */
+	void updateReRecallOrder(Withdraw withdraw);
 	
 }

+ 45 - 33
src/main/java/com/style24/admin/biz/service/TsaOcmService.java

@@ -374,43 +374,53 @@ public class TsaOcmService {
 				orderDetail.setUploadFailReason(vdMap.getString("message"));
 				ocmDao.updateExtmallOrder(orderDetail);
 			}
-
 		}
 
 		// 8. 알림톡발송 (임시 히스토리 쌓음. 로컬,개발인경우만)
-		if( "locd".equals(env.getProperty("spring.profiles.active").toLowerCase()) || "tsit".equals(env.getProperty("spring.profiles.active").toLowerCase())){
-			// Y:제휴몰에서발송, N:자사몰에서발송
-			if( "N".equals(order.getCnclsmsSendYn())) {
-
-				ExtmallOrder testNoti = new ExtmallOrder();
-	    		testNoti.setExtmallId(order.getExtmallId());
-	    		testNoti.setExtmallOrderId(order.getExtmallOrderId());
-	    		if( "ALL_FAIL".equals(result.getString("sendNotiType"))) {
-	    			// 알림톡발송-전체실패
-	    			testNoti.setCnclAllSoldoutYn("Y");
-	    			testNoti.setSku("미할당 전체품절 > 실패 총 "+result.getString("failCnt")+"건 / 재고실패 "+result.getString("stockFailCnt")+"건 ("+result.getString("failGoods")+")");
-
-	    		}else if( "ALL_SUCCESS".equals(result.getString("sendNotiType"))) {
-	    			// 전체성공
-	    			testNoti.setSku("전체성공");
-	    		}else if( "PART_SUCCESS".equals(result.getString("sendNotiType"))) {
-
-	    			if( !"".equals(result.getString("failGoods"))) {
-	    				// 부분성공 알림톡발송
-	    				testNoti.setCnclAllSoldoutYn("N");
-		    			testNoti.setSku("부분결품 품절 > 실패 총 "+result.getString("failCnt")+"건 / 재고실패 "+result.getString("stockFailCnt")+"건 ("+result.getString("failGoods")+")");
-	    			}else {
-	    				// 전체성공
-		    			testNoti.setSku("성공 > 실패한건이 있지만, 재고로인한건이 아님.");
-	    			}
-
-	    		}else {
-	    			// "NOT" 알림톡 발송안함. 이미 발송한건
-	    			testNoti.setSku("알림톡 발송안함. 동일수집건 ");
-	    		}
-	    		ocmDao.insertTestNotiInfo(testNoti);
+		if( "N".equals(order.getCnclsmsSendYn())) {		// Y:제휴몰에서발송, N:자사몰에서발송
+
+			ExtmallOrder testNoti = new ExtmallOrder();
+			testNoti.setUploadGb(order.getUploadGb());
+			testNoti.setExtmallId(order.getExtmallId());
+    		testNoti.setExtmallNm(order.getExtmallNm());
+    		testNoti.setExtmallOrderId(order.getExtmallOrderId());
+    		String soldoutGoodsNm = "";
+
+    		if( "ALL_FAIL".equals(result.getString("sendNotiType"))) {
+    			// 알림톡발송-전체실패
+    			soldoutGoodsNm = result.getString("failGoods") + " (총 "+result.getString("stockFailCnt")+" 건)";
+    			testNoti.setCnclAllSoldoutYn("Y");
+    			testNoti.setSoldoutGoodsNm(soldoutGoodsNm);
+    			if("E".equals(order.getUploadGb())){
+    				//	kakaotalkService.sendShoplinkerOrder(testNoti, 0);
+    			}
+    			testNoti.setSku("미할당 전체품절 > 실패 총 "+result.getString("failCnt")+"건 / 재고실패 "+result.getString("stockFailCnt")+"건 ("+result.getString("failGoods")+")");
+
+    		}else if( "ALL_SUCCESS".equals(result.getString("sendNotiType"))) {
+    			// 전체성공
+    			testNoti.setSku("전체성공");
+    		}else if( "PART_SUCCESS".equals(result.getString("sendNotiType"))) {
+
+    			if( !"".equals(result.getString("failGoods"))) {
+    				// 부분성공 알림톡발송
+    				soldoutGoodsNm = result.getString("failGoods") + " (총 "+result.getString("stockFailCnt")+" 건)";
+    				testNoti.setCnclAllSoldoutYn("N");
+    				testNoti.setSoldoutGoodsNm(soldoutGoodsNm);
+    				if("E".equals(order.getUploadGb())){
+    					//	kakaotalkService.sendShoplinkerOrder(testNoti, 0);
+    				}
+	    			testNoti.setSku("부분결품 품절 > 실패 총 "+result.getString("failCnt")+"건 / 재고실패 "+result.getString("stockFailCnt")+"건 ("+result.getString("failGoods")+")");
+    			}else {
+    				// 전체성공
+	    			testNoti.setSku("성공 > 실패한건이 있지만, 재고로인한건이 아님.");
+    			}
+
+    		}else {
+    			// "NOT" 알림톡 발송안함. 이미 발송한건
+    			testNoti.setSku("알림톡 발송안함. 동일수집건 ");
+    		}
+    		// ocmDao.insertTestNotiInfo(testNoti);
 
-			}
 		}
     }
 
@@ -480,6 +490,8 @@ public class TsaOcmService {
                     if (ordDtl.getSupplyCompCd() != null && !ordDtl.getSupplyCompCd().isEmpty()) {
                     	ordGroup.setSupplyCompCd(ordDtl.getSupplyCompCd());					// 공급업체코드
                     }
+                    ordGroup.setExtmallNm(ordDtl.getExtmallNm());							// 제휴몰명
+                    ordGroup.setUploadGb(ordDtl.getUploadGb());								// 업로드타입
 
             		tmpList.add(ordDtl);
             		ordGroup.setOrderDetailList(tmpList);

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

@@ -1105,6 +1105,12 @@ public class TsaShoplinkerService {
 
 							//1. 샵링커 주문등록
 							try {
+								//*****  테스트 기간동안은 연락처 모두 가공   ************************//
+								slOrder.setOrderTel("011-0000-0000");
+								slOrder.setOrderCel("011-0000-0000");
+								slOrder.setReceiveTel("011-0000-0000");
+								slOrder.setReceiveCel("011-0000-0000");
+								//*****  테스트 기간동안은 연락처 모두 가공   ************************//
 
 								shoplinkerDao.insertShoplinkerOrder(slOrder);
 							}catch(Exception e) {
@@ -1184,6 +1190,12 @@ public class TsaShoplinkerService {
 
 							//1. 샵링커 주문등록
 							try {
+								//*****  테스트 기간동안은 연락처 모두 가공   ************************//
+								slOrder.setOrderTel("011-0000-0000");
+								slOrder.setOrderCel("011-0000-0000");
+								slOrder.setReceiveTel("011-0000-0000");
+								slOrder.setReceiveCel("011-0000-0000");
+								//*****  테스트 기간동안은 연락처 모두 가공   ************************//
 
 								shoplinkerDao.insertShoplinkerOrder(slOrder);
 							}catch(Exception e) {
@@ -1690,7 +1702,10 @@ public class TsaShoplinkerService {
 
 	// 테스트데이터
 	private String testOrderStr() {
-
+		// 성공 "<partner_product_id>NNW13QPM69</partner_product_id>\r\n"
+		//     "<sku_match_code><![CDATA[12112927-3]]></sku_match_code>\r\n"
+		// 실패 "<partner_product_id>MNM0NZNN40</partner_product_id>\r\n"
+		//    "<sku_match_code><![CDATA[10727258-2]]></sku_match_code>\r\n"
 		String bbb = "<?xml version=\"1.0\" encoding=\"euc-kr\"?>"
 				+ "<Shoplinker>\r\n"
 				+ "<header>\r\n"
@@ -1701,8 +1716,8 @@ public class TsaShoplinkerService {
 				+ "</header>\r\n"
 
 				+ "<order>\r\n"
-				+ "<shoplinker_order_id>1234-7</shoplinker_order_id>\r\n"
-				+ "<mall_order_id><![CDATA[1234-7]]></mall_order_id>\r\n"
+				+ "<shoplinker_order_id>1234-9</shoplinker_order_id>\r\n"
+				+ "<mall_order_id><![CDATA[1234-9]]></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"
@@ -1719,7 +1734,7 @@ public class TsaShoplinkerService {
 				+ "<delivery_msg><![CDATA[조심조심]]></delivery_msg>\r\n"
 				+ "<order_product_id>2118602667</order_product_id>\r\n"
 				+ "<shoplinker_product_id>prd143809490</shoplinker_product_id>\r\n"
-				+ "<partner_product_id>NNW13QPM69</partner_product_id>\r\n"
+				+ "<partner_product_id>MNM0NZNN40</partner_product_id>\r\n"
 				+ "<product_name><![CDATA[[나이키 조던 키즈] 윙스MA-1 재킷B NNW13QPM69 (주니어)]]></product_name>\r\n"
 				+ "<quantity>1</quantity>\r\n"
 				+ "<order_price>47600</order_price>\r\n"
@@ -1739,7 +1754,7 @@ public class TsaShoplinkerService {
 				+ "<dis_price_coupon><![CDATA[]]></dis_price_coupon>\r\n"
 				+ "<dis_price_point><![CDATA[]]></dis_price_point>\r\n"
 				+ "<distribution_delivery><![CDATA[001]]></distribution_delivery>\r\n"
-				+ "<sku_match_code><![CDATA[12112927-3]]></sku_match_code>\r\n"
+				+ "<sku_match_code><![CDATA[10727258-2]]></sku_match_code>\r\n"
 				+ "<sku_barcode><![CDATA[]]></sku_barcode>\r\n"
 				+ "<order_main_key><![CDATA[]]></order_main_key>\r\n"
 				+ "<order_customs_number><![CDATA[]]></order_customs_number>\r\n"

+ 23 - 10
src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java

@@ -11,6 +11,7 @@ import com.gagaframework.web.parameter.GagaMap;
 import com.style24.admin.biz.dao.TsaDeliveryDao;
 import com.style24.admin.biz.dao.TsaWithdrawDao;
 import com.style24.admin.support.security.session.TsaSession;
+import com.style24.admin.biz.service.TsaWmsWithdrawService;
 import com.style24.core.biz.dao.TscOrderChangeDao;
 import com.style24.core.biz.service.TscOrderChangeService;
 import com.style24.core.biz.service.TscOrderRefundService;
@@ -57,8 +58,8 @@ public class TsaWithdrawService {
 	@Autowired
 	private TscOrderChangeService orderChangeService;
 	
-	//@Autowired
-	//private TsaOrderDao orderDao;
+	@Autowired
+	private TsaWmsWithdrawService wmsWithdrawService;
 
 	//@Autowired
 	//private TsaOrderService orderService;
@@ -241,6 +242,10 @@ public class TsaWithdrawService {
 	public void reRecallOrder(Withdraw withdraw) {
 		Integer userNo = TsaSession.getInfo().getUserNo();
 		withdraw.setUpdNo(userNo);
+		
+		withdrawDao.updateReRecallOrderChange(withdraw);
+		
+		
 		if(OrderChangeGb.RETURN.value().equals(withdraw.getChgGb())) { // 반품요청
 			withdraw.setChgStat(OrderChangeStat.RETURN.value()); // 반품접수
 		} else { //교환요청
@@ -248,14 +253,22 @@ public class TsaWithdrawService {
 		}
 		withdrawDao.updateReRecallOrder(withdraw);
 		
-		// 주문상세변경 이력 
-		OrderChange ordChg = new OrderChange();
-		ordChg.setRegNo(userNo);
-		ordChg.setUpdNo(userNo);
-		ordChg.setOrdChgSq(withdraw.getOrdChgSq()); 
-		ordChg.setOrdDtlNo(withdraw.getOrdDtlNo()); 
-		ordChg.setChgStat(withdraw.getChgStat());
-		orderChangeDao.createOrderChangeDetailHst(ordChg);
+		// 상세목록 조회 
+		Collection<Withdraw> list = withdrawDao.getOrdChgDtlList(withdraw);
+		
+		for(Withdraw data : list) {
+			// 주문상세변경 이력 
+			OrderChange ordChg = new OrderChange();
+			ordChg.setRegNo(userNo);
+			ordChg.setUpdNo(userNo);
+			ordChg.setOrdChgSq(data.getOrdChgSq()); 
+			ordChg.setOrdDtlNo(data.getOrdDtlNo()); 
+			ordChg.setChgStat(data.getChgStat());
+			orderChangeDao.createOrderChangeDetailHst(ordChg);
+		}
+		
+		// WMS 재회수지시 
+		wmsWithdrawService.updateReRecallOrder(withdraw);
 		
 	}
 	

+ 15 - 0
src/main/java/com/style24/admin/biz/service/TsaWmsWithdrawService.java

@@ -8,6 +8,7 @@ import org.springframework.transaction.annotation.Transactional;
 import lombok.extern.slf4j.Slf4j;
 import com.style24.admin.biz.dao.TsaWmsWithdrawDao;
 import com.style24.persistence.domain.WmsWithdraw;
+import com.style24.persistence.domain.Withdraw;
 import com.style24.persistence.domain.Delivery;
 import com.style24.core.support.message.TscMessageByLocale;
 
@@ -78,4 +79,18 @@ public class TsaWmsWithdrawService {
 		wmsWithdrawDao.deleteWmsTbIfDelifixQty(delivery);
 	}
 	
+	/**
+	 * 재회수지시 
+	 *
+	 * @param Delivery
+	 * @return
+	 * @author moon
+	 * @since 2021. 06. 24
+	 */
+	@Transactional("wmsTxnManager")
+	public void updateReRecallOrder(Withdraw withdraw) {
+		wmsWithdrawDao.updateReRecallOrder(withdraw);
+	}
+	
+	
 }

+ 5 - 2
src/main/java/com/style24/admin/biz/web/TsaCustomerController.java

@@ -9,6 +9,7 @@ import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.session.TscSession;
 import com.style24.core.support.util.CryptoUtils;
+import com.style24.core.support.util.MaskingUtils;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.CustContactHst;
@@ -470,7 +471,8 @@ public class TsaCustomerController extends TsaBaseController {
 	@GetMapping("/lms/popup/form")
 	public ModelAndView lmsPopupForm(@RequestParam(value = "elementCellPhnno", required = false) String elementCellPhnno
 									, @RequestParam(value = "elementCustNo") String elementCustNo
-									, @RequestParam(value = "elementMaskingCellPhnno", required = false) String maskingCellPhnno) {
+									, @RequestParam(value = "elementMaskingCellPhnno", required = false) String maskingCellPhnno
+									, @RequestParam(value = "pageGb", required = false) String pageGb) {
 		ModelAndView mav = new ModelAndView();
 		// 휴대폰 번호
 		mav.addObject("elementCellPhnno", elementCellPhnno);
@@ -483,12 +485,13 @@ public class TsaCustomerController extends TsaBaseController {
 
 		mav.addObject("callBack", TscConstants.CALLCENTER_TEL_NO);
 
+		mav.addObject("pageGb", pageGb);
+
 		mav.setViewName("customer/LmsPopupForm");
 
 		return mav;
 	}
 
-
 	/**
 	 * 메시지 발송
 	 *

+ 3 - 2
src/main/java/com/style24/persistence/domain/ExtmallOrder.java

@@ -69,8 +69,9 @@ public class ExtmallOrder extends TscBaseDomain {
 	private String supplyCompCd;		// 공급업체코드
 	private Integer totalOrdAmt;		// 총 주문금액
 	private Integer stockFailHstCnt;	// 주문업로드시 재고실패이력 cnt
-	private String cnclsmsSendYn; 		// 취소문자발송여부(Y:제휴몰에서발송, N:자사몰에서발송)
-	private String cnclAllSoldoutYn; 	// 전체품절취소여부
+	private String cnclsmsSendYn; 		// 알림톡-취소문자발송여부(Y:제휴몰에서발송, N:자사몰에서발송)
+	private String cnclAllSoldoutYn; 	// 알림톡-전체품절취소여부
+	private String soldoutGoodsNm;		// 알림톡-품절상품내용
 
 	private String stDate;
 	private String edDate;

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsaOcm.xml

@@ -214,7 +214,7 @@
 			, B.DELV_FEE_CD -- 배송비정책코드
 			, A.VENDOR_ID
 			, A.EXTMALL_ID
-			, A.EXTMALL_NM
+			, (SELECT S.EXTMALL_NM FROM TB_EXTMALL S WHERE S.USE_YN = 'Y' AND S.EXTMALL_ID = A.EXTMALL_ID) AS EXTMALL_NM
 			, A.AGENT_ORDER_ID
 			, A.EXTMALL_ORDER_ID
 			, A.EXTMALL_PROD_ID

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsaPoll.xml

@@ -280,7 +280,7 @@
 		     , TB_POLL_ANSWER B
 		WHERE  A.POLL_QSQ = B.POLL_QSQ
 		GROUP  BY B.ANS_CUST_NO
-		         ,B.REG_DT 
+		         ,DATE_FORMAT(B.REG_DT, '%Y-%m-%d')
 		         ,B.ANS_INDEX
 		         ,A.POLL_SQ
 		)Z

+ 24 - 5
src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml

@@ -363,7 +363,7 @@
 				<include refid="getListPagingCondition_sql"/>
 	</select>
 
-    <!-- 환불관리 목록 조회 조건  -->
+    <!-- 회수지시 목록 조회 조건  -->
 	<sql id="getWithdrawDirectiveCondition_sql">
 		<if test="ordNm != null and ordNm != ''">
 			AND O.ORD_NM = #{ordNm}
@@ -405,7 +405,7 @@
 		AND    OCD.DEL_YN      = 'N'	
 	</sql>		
 			
-	<!-- 재회수지시-->
+	<!-- 재회수지시 Detail-->
 	<update id="updateReRecallOrder" parameterType="Withdraw" >
 		/* TsaWithdraw.updateReRecallOrder */
 		UPDATE TB_ORDER_CHANGE_DETAIL SET
@@ -413,11 +413,20 @@
 		, UPD_NO   = #{updNo}
 		, UPD_DT   = NOW()
 		WHERE ORD_CHG_SQ = #{ordChgSq} 
-		  AND ORD_DTL_NO = #{ordDtlNo}
-
 	</update>
 
+	<!-- 재회수지시 -->
+	<update id="updateReRecallOrderChange" parameterType="Withdraw" >
+		/* TsaWithdraw.updateReRecallOrderChange */
+		UPDATE TB_ORDER_CHANGE SET 
+			  WD_SHIP_STATE = '99'
+			, UPD_NO        = #{updNo}
+			, UPD_DT        = NOW()
+		WHERE ORD_CHG_SQ = #{ordChgSq} 
+
 
+	</update>
+	
 	<!-- 회수예외 사유변경 목록 -->
 	<select id="getWithdrawExceptionChangeList" parameterType="WithdrawExc" resultType="WithdrawExc">
 		/* TsaWithdraw.getWithdrawExceptionChangeList */
@@ -528,6 +537,16 @@
 		   AND B.CHG_STAT IN('G685_33','G685_60')		
 	</select>	
 	
-	
+	<!-- 주문변경번호 상세 조회  -->
+	<select id="getOrdChgDtlList" parameterType="Withdraw" resultType="Withdraw">
+		/* TsaWithdraw.getOrdChgDtlList */
+		SELECT  
+			  ORD_CHG_SQ 
+			, ORD_DTL_NO 
+			, CHG_STAT 
+		FROM TB_ORDER_CHANGE_DETAIL
+		WHERE ORD_CHG_SQ = 980
+		  AND DEL_YN     = 'N'
+	</select>	
 		
 </mapper>

+ 12 - 1
src/main/java/com/style24/persistence/mybatis/wms/TsaWmsWithdraw.xml

@@ -140,7 +140,18 @@
 		  AND OrderDtlNo = #{ordDtlNo}
 	</delete>		
 	
-	
+	<!-- 재회수지시      -->
+	<insert id="updateReRecallOrder" parameterType="Withdraw" >
+		/*TsaWmsWithdraw.updateReRecallOrder*/
+		UPDATE ISTYLE24_WMSIF.DBO.TB_IF_RECALLDELIVERY SET 
+		  IsDeleted   = 1
+		, DateDeleted = GETDATE() 
+		WHERE OrderExceptionNo  =  #{ordChgSq}
+		  AND OrderNo           =  #{ordNo}
+          and IfStat in ('0','1')
+          and IsDeleted = 0
+          		  
+	</insert>	
 	
 	
 </mapper>

+ 2 - 2
src/main/resources/config/application-style.yml

@@ -96,8 +96,8 @@ shoplinker:
     customer_id : a0024007
     shoplinker_id : istyle1
     xml:
-        path: http://stage.istyle24.com/Partner/ShopLinker/dev
-        view: http://stage.istyle24.com/Partner/ShopLinker/dev
+        path: /files/data/shoplinker
+        view: http://archive.style24.com/shoplinker
     url:
         option : /Product/attribute_insert.php?iteminfo_url=
         product : /Product/attribute_prod_insert.php?iteminfo_url=

+ 8 - 7
src/main/webapp/WEB-INF/views/board/NoticeForm.html

@@ -205,8 +205,8 @@
 		<!-- 등록/수정 -->
 	</div>
 
-<script type="text/javascript" src="/ux/plugins/summernote/summernote.js?v=2020103001"></script>
-<script type="text/javascript" src="/ux/plugins/gaga/gaga.summernote.js?v=2021053101"></script>
+<!-- <script type="text/javascript" src="/ux/plugins/summernote/summernote.js?v=2020103001"></script>
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.summernote.js?v=2021053101"></script> -->
 <script th:inline="javascript">
 /*<![CDATA[*/
 	// 공지사항유형(10:사이트공지, 20:내부공지)
@@ -343,7 +343,8 @@
 		}
 
 		// 공지내용. Summernote에 값 세팅
-		gagaSn.setContents('#noticeContent', event.data.noticeContent);
+		//gagaSn.setContents('#noticeContent', event.data.noticeContent);
+		$('#detailForm textarea[name=noticeContent]').val(event.data.noticeContent);
 
 		// 수신자 목록
 		fnGetNoticeReceiverList(event.data.noticeSq);
@@ -481,8 +482,8 @@
 		$('#detailForm input[name=noticeSq]').val('');
 		$('#detailForm input[name=noticeStdt]').val(_today);
 		$('#detailForm input[name=noticeEddt]').val(_today);
-		
-		gagaSn.setContents('#noticeContent', ''); 
+		$('#detailForm input[name=noticeContent]').val('');
+		//gagaSn.setContents('#noticeContent', ''); 
 	});
 	
 	// 저장
@@ -618,8 +619,8 @@
 		gagaAgGrid.createGrid('gridList', gridOptions);
 		
 		// Create a summernote
-		let snOptions = gagaSn.getToolbarOptions();
-		gagaSn.createSummernote(snOptions, '#noticeContent');
+		//let snOptions = gagaSn.getToolbarOptions();
+		//gagaSn.createSummernote(snOptions, '#noticeContent');
 		
 		$("#fileCnt").trigger('change');
 	});

+ 3 - 1
src/main/webapp/WEB-INF/views/customer/CustomerActiveListForm.html

@@ -163,9 +163,11 @@
 			headerName: "사이트", field:'siteCd', width:100, cellClass: 'text-center',
 			valueGetter: function (params) { return gagaAgGrid.lookupValue(siteList, params.data.siteCd); }
 		},
-		{headerName: "회원ID", field:'maskingCustId', width:120, cellClass: 'text-left',
+		{
+			headerName: "회원ID", field:'maskingCustId', width:120, cellClass: 'text-left',
 			valueGetter: function (params) { return params.data.maskingCustId; }
 		},
+		{headerName: "회원NO", field: "custNo", width: 120, cellClass: 'text-center', hide: true},
 		{
 			headerName: "회원명", field:'maskingCustNm', width:100, cellClass: 'text-center',
 			cellRenderer: function(params) { return '<a href="javascript:void(0);">' + params.data.maskingCustNm + '</a>'; }

+ 57 - 54
src/main/webapp/WEB-INF/views/customer/LmsPopupForm.html

@@ -14,69 +14,72 @@
  * 1.0  2021.01.21   jsshin     최초 작성
  *******************************************************************************
  -->
-<div class="modelessPopup" data-width="800">
-	<div class="panelStyle">
-		<!-- TITLE -->
-		<div class="panelTitle">
-			<strong>LMS 발송</strong>
-			<button type="button" class="close" onclick="uifnPopupClose('popupLmsForm')"><em class="fa fa-times"></em></button>
-		</div>
-		<!-- //TITLE -->
-		<!-- CONTENT -->
-		<div class="panelContent">
-			<form id="lmsForm" name="lmsForm">
-				<table class="frmStyle">
-					<colgroup>
-						<col style="width:1%"/>
-						<col style="width:40%"/>
-					</colgroup>
-					<tbody>
-					<tr >
-						<th>수신자번호<em class="required" title="필수"></em></th>
-						<td th:if="${maskingCellPhnno == ''}">
-							<input type="text" class="w150" name="cellPhnno" data-valid-name="수신번호"  required="required"  maxlength="13" readonly="readonly"/>
-						</td>
-						<td th:unless="${maskingCellPhnno == ''}">
-							<input type="hidden" name="cellPhnno"/>
-							<input type="text" class="w150" name="maskingCellPhnno" readonly="readonly"/>
-						</td>
-					</tr>
-					<tr>
-						<th>발신자번호<em class="required" title="필수"></em></th>
-						<td>
-							<input type="text" class="w150" name="callBack" th:value="${callBack}" maxlength="11" readonly="readonly"/>
-						</td>
-					</tr>
-					<tr>
-						<th>메시지<em class="required" title="필수"></em></th>
-						<td>
-							<textarea class="textareaR4"  style="resize: none;" name ="content" ></textarea>
-							<span name="count">0</span> / 2000 byte
-						</td>
-					</tr>
-					</tbody>
-				</table>
-			</form>
+
+	<div class="modelessPopup draggable" data-width="800">
+		<div class="panelStyle">
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<strong>LMS 발송</strong>
+				<button type="button" class="close" onclick="uifnPopupClose('popupLmsForm')"><em class="fa fa-times"></em></button>
+			</div>
+			<!-- //TITLE -->
+			<!-- CONTENT -->
+			<div class="panelContent">
+				<form id="lmsForm" name="lmsForm">
+					<table class="frmStyle">
+						<colgroup>
+							<col style="width:1%"/>
+							<col style="width:40%"/>
+						</colgroup>
+						<tbody>
+						<tr >
+							<th>수신자번호<em class="required" title="필수"></em></th>
+							<td th:if="${maskingCellPhnno == ''}">
+								<input type="text" class="w150" name="cellPhnno" data-valid-name="수신번호"  required="required"  maxlength="13" readonly="readonly"/>
+							</td>
+							<td th:unless="${maskingCellPhnno == ''}">
+								<input type="hidden" name="cellPhnno"/>
+								<input type="text" class="w150" name="maskingCellPhnno" readonly="readonly"/>
+							</td>
+						</tr>
+						<tr>
+							<th>발신자번호<em class="required" title="필수"></em></th>
+							<td>
+								<input type="text" class="w150" name="callBack" th:value="${callBack}" maxlength="11" readonly="readonly"/>
+							</td>
+						</tr>
+						<tr>
+							<th>메시지<em class="required" title="필수"></em></th>
+							<td>
+								<textarea class="textareaR4"  style="resize: none;" name ="content" ></textarea>
+								<span name="count">0</span> / 2000 byte
+							</td>
+						</tr>
+						</tbody>
+					</table>
+				</form>
+			</div>
+			<ul class="panelBar">
+				<li class="right">
+					<button type="button" class="btn btn-success btn-lg" id="btnSendSms">발송</button>
+					<button type="button" class="btn btn-gray btn-lg" onclick="uifnPopupClose('popupLmsForm')">취소</button>
+				</li>
+			</ul>
+			<!-- //CONTENT -->
 		</div>
-		<ul class="panelBar">
-			<li class="right">
-				<button type="button" class="btn btn-success btn-lg" id="btnSendSms">발송</button>
-				<button type="button" class="btn btn-gray btn-lg" onclick="uifnPopupClose('popupLmsForm')">취소</button>
-			</li>
-		</ul>
-		<!-- //CONTENT -->
 	</div>
-</div>
+
 <script th:inline="javascript">
 	/*<![CDATA[*/
 	const elementCellPhnno = [[${elementCellPhnno}]];
 	const elementCustNo = [[${elementCustNo}]];
 	const maskingCellPhnno = [[${maskingCellPhnno}]];
+	const pageGb = [[${pageGb}]];
 
 	// 메시지 전송
 	$("#btnSendSms").on("click",function() {
 		let formId = '#lmsForm';
-		let custNo = $(elementCustNo).val();
+		let custNo = gagajf.isNull(pageGb) ? $(elementCustNo).val() : elementCustNo;
 		const $content = $(formId+' textarea[name=content]');
 
 		if(gagajf.isNull($content.val())) {
@@ -112,11 +115,11 @@
 	});
 
 	var fnInitDataSet = function () {
-		let cellPhnno = $(elementCellPhnno).val();
+		let cellPhnno = gagajf.isNull(pageGb) ? $(elementCellPhnno).val() : elementCellPhnno;
 		if (gagajf.isNull(maskingCellPhnno)) {
 			$('#lmsForm input[name=cellPhnno]').val(cellPhnno);
 		} else {
-			let mkCellPhno = $(maskingCellPhnno).val();
+			let mkCellPhno = gagajf.isNull(pageGb) ? $(maskingCellPhnno).val() : maskingCellPhnno;
 			$('#lmsForm input[name=cellPhnno]').val(cellPhnno);
 			$('#lmsForm input[name=maskingCellPhnno]').val(mkCellPhno);
 		}

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

@@ -87,7 +87,7 @@
 
 				<ul class="panelBar">
 					<li class="center">
-						<button type="button" class="btn btn-base btn-lg" id="btnSearch">결과조회</button>
+						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
 						<!-- <button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button> -->
 						<button type="button" class="btn btn-primary btn-lg" id="btnSendInvoice">송장전송</button>
 						<!-- <button type="button" class="btn btn-primary btn-lg" id="btnInvoiceUpload">엑셀업로드</button> -->

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

@@ -120,7 +120,7 @@
 
 				<ul class="panelBar">
 					<li class="center">
-						<button type="button" class="btn btn-base btn-lg" id="btnSearch">결과조회</button>
+						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
 						<!-- <button type="button" class="btn btn-default btn-lg" onclick="fnTest();">테스트</button> -->
 						<!-- <button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button> -->
 					</li>

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

@@ -77,7 +77,7 @@
 
 				<ul class="panelBar">
 					<li class="center">
-						<button type="button" class="btn btn-base btn-lg" id="btnSearch">결과조회</button>
+						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
 					</li>
 				</ul>
 

+ 26 - 3
src/main/webapp/WEB-INF/views/withdraw/WithdrawDirectiveListForm.html

@@ -185,13 +185,21 @@
 		{headerName: "미회수사유", 	field: "wdReasonCdNm", 	width: 100, cellClass: "text-center"},
 		{headerName: "재회수지시", 	field: "wdShipState", 		width: 100,	cellClass: 'text-center',
 			cellRenderer: function(params) {
-				return params.value == '12' && params.data.chgStat == 'G685_30' ? '<button type="button" class="btn btn-base btn-sm" onclick="fnReRecallOrder(\'' + params.data.chgGb + '\',\'' + params.data.ordDtlNo + '\',\''+params.data.ordChgSq+'\');">&nbsp;재회수지시&nbsp;</button>' : "";
+				return params.value == '12' && params.data.chgStat == 'G685_30' ? '<button type="button" class="btn btn-base btn-sm" onclick="fnReRecallOrder(\'' + params.data.chgGb + '\',\'' + params.data.ordDtlNo + '\',\''+params.data.ordChgSq+'\',\''+params.data.ordNo+'\');">&nbsp;재회수지시&nbsp;</button>' : "";
 			}
 		},	
 		{headerName: "교환선발송여부 ", 	field: "wdBfSendYn", 	width: 110, cellClass: "text-center"},
 		{headerName: "배송시작일시", 	field: "wdStdt", 		width: 120, cellClass: "text-center"},
 		{headerName: "배송종료일시", 	field: "wdEddt", 		width: 120, cellClass: "text-center"},
 		{headerName: "수취인명", 		field: "recipNm", 		width: 120, cellClass: "text-center"},
+		
+		{headerName: "LMS", 			field: "chgerPhnno", 	width: 120, cellClass: "text-center",
+			cellRenderer: function(params) {
+				return '<button type="button" class="btn btn-base btn-sm" onclick="fnLms(\'' + params.data.chgGb + '\',\'' + params.data.ordDtlNo + '\',\''+params.data.ordChgSq+'\',\''+params.data.ordNo+'\');">&nbsp;LMS&nbsp;</button>';
+			}			
+		},
+		
+		
 		{headerName: "변경자명", 		field: "chgerNm", 		width: 100, cellClass: "text-center"},
 		{headerName: "변경자휴대전화", 	field: "chgerPhnno", 	width: 120, cellClass: "text-center"},
 		{headerName: "변경자전화번호", 	field: "chgerTelno", 	width: 120, cellClass: "text-center"},
@@ -295,7 +303,7 @@
 	/*************************************************************************
 	*  재회수지시
 	**************************************************************************/	
-	var fnReRecallOrder = function(chgGb, ordDtlNo,ordChgSq ){
+	var fnReRecallOrder = function(chgGb, ordDtlNo, ordChgSq, ordNo ){
 		mcxDialog.confirm("재회수지시 하시겠습니까?", {
 		    cancelBtnText: "취소",
 		    sureBtnText: "확인",
@@ -303,6 +311,7 @@
 	            var param = new Object;
 	            param.chgGb    = chgGb;
 	            param.ordDtlNo = ordDtlNo;
+	            param.ordNo    = ordNo;
 	            param.ordChgSq = ordChgSq;
 	            var jsonData = JSON.stringify(param);
 	            gagajf.ajaxJsonSubmit('/withdraw/direct/recallorder', jsonData, fnSearchList);
@@ -310,9 +319,23 @@
 		});
 	}
 
+	/*************************************************************************
+	*  LMS
+	**************************************************************************/	
+	var fnLms = function(){
+		let param = {};
+		param.elementCellPhnno = '010-4016-1558'; //'#custInfoForm input[name=cellPhnno]';
+		param.elementCustNo =    '100025';// '#custInfoForm input[name=custNo]';
+		param.elementMaskingCellPhnno = ''; //  '#custInfoForm input[name=maskingCellPhnno]';
+		param.pageGb = 'delv';
+		cfnOpenLmsPopup(param);
+	}
+
+	
+	
 	//엑셀다운로드
 	$('#btnExcel').on('click', function() {
-		gagaAgGrid.exportToExcel('회수지시 목록', gridOptions);
+
 		
 		var totalRows = gridOptions.api.getDisplayedRowCount();
 		if(totalRows==0){

+ 4 - 0
src/main/webapp/ux/js/admin.popup.js

@@ -428,6 +428,7 @@ function cfnCouponCreatePopup(mode, cpnId, callbackfun){
  *     param.elementCellPhnno = 'input[name=cellPhnno]';
  *     param.elementCustNo = 'input[name=custNo]';
  *     param.elementMaskingCellPhnno = 'textarea[name=elementMaskingCellPhnno]'; //선택
+ *     paras.pageGb = 'delv'; // 선택
  *     cfnOpenLmsPopup(param);
  * </pre>
  * @since  : 2020/02/13
@@ -439,6 +440,9 @@ var cfnOpenLmsPopup = function(param) {
 	if (!gagajf.isNull(param.elementMaskingCellPhnno)) {
 		actionUrl +='&elementMaskingCellPhnno=' + encodeURIComponent(param.elementMaskingCellPhnno);
 	}
+	if (!gagajf.isNull(param.pageGb)) {
+		actionUrl +='&pageGb=' + param.pageGb;
+	}
 	cfnOpenModalPopup(actionUrl, 'popupLmsForm');
 }