tsit05 4 лет назад
Родитель
Сommit
2974c030fc

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

@@ -292,9 +292,9 @@ public class TsaWithdrawService {
 			for(int i=0; i<listDtlNo.length; i++) {
 				WithdrawExc item = new WithdrawExc();
 				if("G680_30".equals(withdrawExc.getWdGb())) { // 반품요청
-					item.setChgStat(OrderChangeStat.RETURN_WAIT.value());   // 반품대기 (추가배송비 결제 전)
+					item.setChgStat(OrderChangeStat.WITHDRAW_WAIT.value());   // 반품대기 (추가배송비 결제 전)
 				} else { // 교환요청 
-					item.setChgStat(OrderChangeStat.EXCHANGE_WAIT.value()); // 교환대기 (추가배송비 결제 전)
+					item.setChgStat(OrderChangeStat.WITHDRAW_WAIT.value()); // 교환대기 (추가배송비 결제 전)
 				}
 				item.setOrdChgSq(withdrawExc.getOrdChgSq());
 				item.setOrdDtlNo(Integer.parseInt(listDtlNo[i]));

+ 23 - 0
src/main/java/com/style24/admin/biz/web/TsaCustomerController.java

@@ -551,6 +551,29 @@ public class TsaCustomerController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0005"));
 	}
 
+	/**
+	 * 메시지 발송
+	 *
+	 * @param customer -고객정보
+	 * @return GagaResponse
+	 * @author jsshin
+	 * @since 2021. 01. 21
+	 */
+	@PostMapping("/message/send2")
+	@ResponseBody
+	public GagaResponse sendLms(@RequestBody Customer customer) {
+		Customer custInfo = customerService.getCustomerInfo(customer.getCustNo());
+		customer.setCustNm(custInfo.getCustNm());
+		customer.setCustNo(custInfo.getCustNo());
+
+		if (StringUtils.isNotBlank(customer.getCellPhnno())) {
+			Integer userNo = TsaSession.getInfo().getUserNo();
+			kakaotalkService.sendBasicLms(customer, userNo);
+		}
+
+		return super.ok(message.getMessage("SUCC_0005"));
+	}
+	
 	/**
 	 * 메시지 발송 팝업 화면
 	 *

+ 23 - 1
src/main/java/com/style24/persistence/domain/WmsWithdraw.java

@@ -4,6 +4,9 @@ import lombok.Data;
 
 import com.style24.persistence.TscBaseDomain;
 import com.style24.persistence.TscPageRequest;
+import com.style24.core.support.session.TscSession;
+import com.style24.core.support.util.CryptoUtils;
+import com.style24.core.support.util.MaskingUtils;
 
 /**
  * WMS회수 Domain
@@ -69,6 +72,25 @@ public class WmsWithdraw extends TscBaseDomain {
 	private String stDate;					// 조회 시작 기간
 	private String edDate;					// 조회 종료 기간
 	
-	
+	// Masking
+
+	public String getMaskingReceiver() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.name(this.receiver) : this.receiver;
+	}
+
+	public String getMaskingCustomername() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.name(this.customername) : this.customername;
+	}
 
+	public String getMaskingReceivercellnum() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.phoneNo(this.receivercellnum) : this.receivercellnum;
+	}
+	
+	public String getMaskingDeliveryaddr2() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.address(this.deliveryaddr2) : this.deliveryaddr2;
+	}	
+	
+	public String getMaskingLoginid() {
+		return TscSession.getAttribute("maskingYn").equals("Y") ? MaskingUtils.id(this.loginid) : this.loginid;
+	}		
 }

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

@@ -183,12 +183,13 @@
 	        , (SELECT E.EXTMALL_NM FROM TB_EXTMALL E WHERE E.VENDOR_ID = Z.VENDOR_ID AND E.EXTMALL_ID = Z.EXTMALL_ID) AS SITE_CD
 	        , CASE WHEN Z.CHG_GB = 'G680_30' THEN FN_GET_CODE_NM('G688', Z.CHG_REASON)
 			       WHEN Z.CHG_GB = 'G680_40' THEN FN_GET_CODE_NM('G689', Z.CHG_REASON)   ELSE '' END AS CHG_REASON_NM  
-			, CASE WHEN Z.CHG_GB = 'EXC' THEN '출고예외'  ELSE IFNULL(FN_GET_CODE_NM('G680', Z.CHG_GB),'회수예외') END  AS CHG_GB_NM
+			, CASE WHEN Z.CHG_GB = 'EXC' THEN '출고예외'  WHEN Z.CHG_GB = 'WEXC' THEN '회수예외' ELSE FN_GET_CODE_NM('G680', Z.CHG_GB) END  AS CHG_GB_NM
 			, (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) AS CHG_STAT
 			, (SELECT D.DELV_FEE_CD FROM TB_ORDER_DETAIL D WHERE D.ORD_DTL_NO = Z.ORDER_DTL_NO ) AS DELV_FEE_CD
 			, CASE WHEN Z.RECALL_STAT = 'P' THEN '대기' ELSE '완료' END AS RECALL_STAT_NM
-			, CASE WHEN Z.RECALL_STAT = 'P' AND (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) IN ('G685_21','G685_51') THEN '추가결제대기'
-			       WHEN Z.RECALL_STAT = 'P' THEN '대기' ELSE '완료' END AS STAT_NM
+			, CASE WHEN Z.RECALL_STAT = 'P' AND Z.ADD_FEE_YN = 'Y' AND (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) IN ('G685_32') THEN '추가결제대기'
+				   WHEN Z.RECALL_STAT = 'P' AND Z.ADD_FEE_YN = 'Y' AND (SELECT CHG_STAT FROM TB_ORDER_CHANGE_DETAIL C WHERE C.ORD_DTL_NO = Z.ORDER_DTL_NO AND C.DEL_YN = 'N' AND C.ORD_CHG_SQ = Z.ORD_CHG_SQ) NOT IN ('G685_32') THEN '추가결제완료'       
+				   WHEN Z.RECALL_STAT = 'P' THEN '대기' ELSE '완료' END AS STAT_NM
 		FROM (
 		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORDER_NO, A.RECALL_EXCEPTION_NO, A.RECALL_EXCEPTION_ITEM_NO)  RNUM 
 		          , CASE WHEN A.MALL_GB = 'G011_20' THEN (SELECT MAX(BB.EXTMALL_ID) FROM TB_ORDER_DETAIL BB WHERE BB.ORD_NO = A.ORDER_NO) ELSE 'APISHOP_0054' END AS EXTMALL_ID
@@ -235,6 +236,7 @@
 							, NULL   AS CHG_REASON
 							, 'EXC'  AS CHG_GB 
 							, 'N'    AS WD_BF_SEND_YN
+							, A.ADD_FEE_YN
 						  FROM TB_ORDER_RECALL_EXCEPTION A 
 						  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO
 						  LEFT JOIN TB_ORDER O ON O.ORD_NO = A.ORDER_NO 
@@ -304,13 +306,14 @@
 							, OC.CHG_REASON
 							, OC.CHG_GB 
 							, OC.WD_BF_SEND_YN
+							, A.ADD_FEE_YN
 						  FROM TB_ORDER_RECALL_EXCEPTION A 
 						  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO
 						  LEFT JOIN TB_ORDER O ON O.ORD_NO = A.ORDER_NO 
 						  LEFT JOIN TB_OPTION C ON C.OPT_CD = B.SKU_CODE
 						  LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL  CD ON B.ORDER_DTL_NO = CD.ORD_DTL_NO AND CD.DEL_YN ='N' AND A.ORDER_EXCEPTION_NO = CD.ORD_CHG_SQ 
 						  LEFT OUTER JOIN TB_ORDER_CHANGE         OC ON CD.ORD_CHG_SQ = OC.ORD_CHG_SQ 						  
-						  WHERE B.REASON_CODE IN('00','01','02','03','04','05','06','15')
+						  WHERE B.REASON_CODE IN('00','02','03','04','05','06','15')
 							<if test='customerName != null and customerName != ""'>
 							AND   A.CUSTOMER_NAME = #{customerName}
 							</if>
@@ -333,13 +336,86 @@
 							<if test='userNameCreated != null and userNameCreated != ""'>
 							AND A.USER_NAME_CREATED = #{userNameCreated}
 							</if>
+							
+						UNION ALL
+						
+						SELECT 
+							  A.RECALL_STAT   -- 반품대기처리상태
+							, A.STATUS_CD     -- 처리상태
+							, A.DATE_CREATED  -- 등록일자
+							, A.CUSTOMER_NAME -- 고객명
+							, A.ORDER_NO      -- 주문번호
+							, B.ORDER_DTL_NO  -- 주문상세번호 
+							, A.LOGISTICS_NAME -- 택배사명
+							, A.INVOICE_NO     -- 반송장번호
+							, A.CHARGE_TYPE    -- 요금구분
+							, A.CHARGE_AMOUNT  -- 배송비
+							, A.USER_NAME_CREATED -- 작업자
+							, B.REASON_CD -- 예외사유
+							, IFNULL((SELECT GROUP_CONCAT(ADMIN_MEMO ORDER BY RECALL_EXCEPTION_MEMO_NO ) 
+							     FROM TB_ORDER_RECALL_EXCEPTION_MEMO C WHERE C.RECALL_EXCEPTION_NO = A.RECALL_EXCEPTION_NO  AND ADMIN_MEMO !='.'),'-') AS ADMIN_MEMO -- WMS메시지
+							, IFNULL((SELECT BRAND_KNM FROM TB_BRAND BR JOIN TB_GOODS GD ON BR.BRAND_CD = GD.BRAND_CD WHERE GD.GOODS_CD = C.GOODS_CD),'') AS BRAND_NM           -- 브랜드명
+							, B.PRODUCT_CODE   -- 상품코드
+							, B.SKU_CODE       -- SKU코드
+							, B.PRODUCT_NAME   -- 상품명
+							, B.SKU_VALUE      -- 속성
+							, C.SKU_MODEL_NO   -- 원코드
+							, B.EXCEPTION_QTY  -- 수량 
+							, A.RECALL_EXCEPTION_NO -- 반품예외처리번호 
+							, IFNULL(C.GOODS_CD,'') AS GOODS_CD       -- 상품코드 
+							, B.RECALL_EXCEPTION_ITEM_NO 
+							, B.QTY
+							, B.REASON_CODE
+							, O.MALL_GB
+							, A.COD_FEE
+							, O.ORD_PHNNO 
+							, O.CUST_NO 
+							, CASE WHEN A.PAY_GB = 'NAVER' THEN 'Y' ELSE 'N' END AS PAY_GB  
+							, A.ORDER_EXCEPTION_NO 
+							, CD.CHG_STAT
+							, OC.ORD_CHG_SQ 
+							, OC.WD_GB 
+							, OC.CHG_REASON
+							, 'WEXC' AS CHG_GB 
+							, IFNULL(OC.WD_BF_SEND_YN,'N') AS WD_BF_SEND_YN
+							, A.ADD_FEE_YN
+						  FROM TB_ORDER_RECALL_EXCEPTION A 
+						  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO
+						  LEFT JOIN TB_ORDER O ON O.ORD_NO = A.ORDER_NO 
+						  LEFT JOIN TB_OPTION C ON C.OPT_CD = B.SKU_CODE
+						  LEFT OUTER JOIN TB_ORDER_CHANGE_DETAIL  CD ON B.ORDER_DTL_NO = CD.ORD_DTL_NO AND CD.DEL_YN ='N' AND A.ORDER_EXCEPTION_NO = CD.ORD_CHG_SQ 
+						  LEFT OUTER JOIN TB_ORDER_CHANGE         OC ON CD.ORD_CHG_SQ = OC.ORD_CHG_SQ 						  
+						  WHERE B.REASON_CODE IN('01')
+							<if test='customerName != null and customerName != ""'>
+							AND   A.CUSTOMER_NAME = #{customerName}
+							</if>
+							<if test='orderNo != null and orderNo != ""'>
+							AND   A.ORDER_NO  = #{orderNo}
+							</if>
+							<if test='recallStat != null and recallStat != ""'>
+							AND   A.RECALL_STAT  = #{recallStat}
+							</if>
+							<if test='stDate != null and stDate != ""'>
+							AND   A.DATE_CREATED <![CDATA[>= ]]> STR_TO_DATE(REPLACE(#{stDate},'-',''), '%Y%m%d%H%i%s') 
+							</if>
+							<if test='edDate != null and edDate != ""'>
+							AND   A.DATE_CREATED <![CDATA[<]]> DATE_ADD(STR_TO_DATE(REPLACE(#{edDate},'-','')+ 1, '%Y%m%d%H%i%s'), INTERVAL 1 DAY)
+							</if>
+							
+							<if test='reasonCode != null and reasonCode != ""'>
+							AND B.REASON_CODE = #{reasonCode}
+							</if>
+							<if test='userNameCreated != null and userNameCreated != ""'>
+							AND A.USER_NAME_CREATED = #{userNameCreated}
+							</if>
+														
 				) A
 				WHERE 1=1
 				<if test='chgGb != null and chgGb != "" and chgGb !="G680" and chgGb !="G680_00"'>
 				AND A.CHG_GB  = #{chgGb}
 				</if>
 				<if test='chgGb =="G680"'>
-				AND A.CHG_GB  IS NULL
+				AND A.CHG_GB = 'WEXC'
 				</if>
 				<if test='chgGb =="G680_00"'>
 				AND A.CHG_GB = 'EXC'

+ 7 - 2
src/main/webapp/WEB-INF/views/customer/LmsPopupForm.html

@@ -95,7 +95,7 @@
 		if(!gagajf.validation(formId)){
 			return;
 		}
-
+		
 		mcxDialog.confirm("저장하시겠습니까?", {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
@@ -103,9 +103,14 @@
 				let params = $(formId).serializeObject();
 				params.custNo = custNo;
 				let jsonData = JSON.stringify(params);
-				gagajf.ajaxJsonSubmit('/customer/message/send', jsonData, uifnPopupClose('popupLmsForm'));
+				if(gagajf.isNull(pageGb)){
+					gagajf.ajaxJsonSubmit('/customer/message/send', jsonData, uifnPopupClose('popupLmsForm'));
+				} else {
+					gagajf.ajaxJsonSubmit('/customer/message/send2', jsonData, uifnPopupClose('popupLmsForm'));
+				}
 			}
 		});
+		
 
 	});
 

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

@@ -152,7 +152,7 @@
 	var columnDefs = [
 		{headerName: "반품예외처리번호",		field: "recallExceptionNo", width: 50,	cellClass: 'text-center', hide: true},
 		//{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
-		{headerName: "",			field: "recallStatNm",		width: 100,	cellClass: 'text-center',
+		{headerName: "",			field: "recall",		width: 100,	cellClass: 'text-center',
 			/*
 			rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,  
 		    cellClassRules: {
@@ -162,7 +162,7 @@
 				var btnText = '';
 				if(params.data.recallStat == 'P') {
 					if(params.data.chgStat == 'G685_21' || params.data.chgStat == 'G685_51'){
-						btnText= '추가결제대기';
+						btnText= '';
 					} else {
 						btnText= '<a href="javascript:void(0);"  class="btn btn-success btn-ssm">완료</a>';
 					}
@@ -251,7 +251,7 @@
 		{headerName: "WMS메시지",		field: "adminMemo",			width: 300,	cellClass: 'text-left'},
 		{headerName: "반품교환사유",		field: "chgReasonNm",		width: 150,	cellClass: 'text-left'},
 		{headerName: "네이버 주문형",		field: "payGb",				width: 100,	cellClass: 'text-center'},
-		{headerName: "반품/사유변경",	field: "chgReason",			width: 120,	cellClass: 'text-center',
+		{headerName: "반품/사유변경",	field: "chgReason2",			width: 120,	cellClass: 'text-center',
 			/*
 			rowSpan: params => params.data.rowspanRank === 1 ? params.data.rowspanCnt : 1,  
 			    cellClassRules: {

+ 5 - 6
src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

@@ -158,14 +158,13 @@
 		{headerName: "주문상세번호",		field: "orderdtlno",		width: 100,	cellClass: 'text-center'},
 		{headerName: "상태",				field: "statuscd",			width: 100,	cellClass: 'text-center'},
 		{headerName: "반품구분",			field: "recalltypecdnm",	width: 80,	cellClass: 'text-center'},
-		{headerName: "수취인",			field: "receiver",			width: 100,	cellClass: 'text-center'},
-		{headerName: "수취인전화번호",	field: "receivertelnum",	width: 120,	cellClass: 'text-center'},
-		{headerName: "수취인휴대폰번호",	field: "receivercellnum",	width: 120,	cellClass: 'text-center'},
+		{headerName: "수취인",			field: "maskingReceiver",			width: 100,	cellClass: 'text-center'},
+		{headerName: "수취인휴대폰번호",	field: "maskingReceivercellnum",	width: 120,	cellClass: 'text-center'},
 		{headerName: "우편번호",			field: "deliverypostalcode",width: 80,	cellClass: 'text-center'},
 		{headerName: "기본주소",			field: "deliveryaddr1",		width: 300,	cellClass: 'text-left'},
-		{headerName: "상세주소",			field: "deliveryaddr2",		width: 200,	cellClass: 'text-left'},
-		{headerName: "주문자",			field: "customername",		width: 100,	cellClass: 'text-center'},
-		{headerName: "ID",				field: "loginid",			width: 100,	cellClass: 'text-center'},
+		{headerName: "상세주소",			field: "maskingDeliveryaddr2",		width: 200,	cellClass: 'text-left'},
+		{headerName: "주문자",			field: "maskingCustomername",		width: 100,	cellClass: 'text-center'},
+		{headerName: "ID",				field: "maskingLoginid",			width: 100,	cellClass: 'text-center'},
 		{headerName: "CS메모",			field: "csmemo",			width: 250,	cellClass: 'text-left'},	
 		{headerName: "CS메모 변경일",		field: "datecsmemoupdated",	width: 120,	cellClass: 'text-center'},
 		{headerName: "WMS메모",			field: "wmsmemo",			width: 250,	cellClass: 'text-left'},