fix : 출고 상태 변경 (배송처리)
This commit is contained in:
@@ -3,9 +3,10 @@ package com.wb.domainserver.acidlivy.tasklet;
|
|||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO;
|
import com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO;
|
||||||
|
import com.wb.domainserver.acidlivy.vo.BODlivyUpdtVO;
|
||||||
|
import com.wb.domainserver.exception.WnbtRestException;
|
||||||
import com.wb.domainserver.mapper.gcone.AciDlivyMapper;
|
import com.wb.domainserver.mapper.gcone.AciDlivyMapper;
|
||||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||||
import com.wb.domainserver.util.communicate.RESRC;
|
|
||||||
import com.wb.domainserver.util.communicate.SendToResrc;
|
import com.wb.domainserver.util.communicate.SendToResrc;
|
||||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -20,11 +21,12 @@ import org.springframework.http.*;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.PlatformTransactionManager;
|
import org.springframework.transaction.PlatformTransactionManager;
|
||||||
import org.springframework.transaction.TransactionDefinition;
|
import org.springframework.transaction.TransactionDefinition;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.transaction.support.TransactionTemplate;
|
import org.springframework.transaction.support.TransactionTemplate;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.math.BigInteger;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
// ACI 배송자료 조회 및 배송처리 배치 Tasklet
|
// ACI 배송자료 조회 및 배송처리 배치 Tasklet
|
||||||
@@ -94,17 +96,17 @@ public class AciPodTasklet implements Tasklet {
|
|||||||
.allMatch(podInfo -> !isBlank(podInfo, "dateDelivery"));
|
.allMatch(podInfo -> !isBlank(podInfo, "dateDelivery"));
|
||||||
|
|
||||||
// 건별 배송처리
|
// 건별 배송처리
|
||||||
DataMap dataMap = new DataMap();
|
BODlivyUpdtVO boDlivyUpdtVO = new BODlivyUpdtVO();
|
||||||
dataMap.put("dlivyInnb", dlivyOrderVO.getDlivyInnb());
|
boDlivyUpdtVO.setDlivyInnb(dlivyOrderVO.getDlivyInnb());
|
||||||
dataMap.put("dlivySttusCd", dlivyOrderVO.getDlivySttusCd());
|
boDlivyUpdtVO.setDlivySttusCd(dlivyOrderVO.getDlivySttusCd());
|
||||||
dataMap.put("sopmalCd", dlivyOrderVO.getSopmalCd());
|
boDlivyUpdtVO.setSopmalCd(dlivyOrderVO.getSopmalCd());
|
||||||
if(dlvyInPrg) {
|
if(dlvyInPrg) {
|
||||||
dataMap.put("dlivySttusCd", "65");
|
boDlivyUpdtVO.setDlivySttusCd("65");
|
||||||
processDeliveryPod(dataMap);
|
processDeliveryPod(boDlivyUpdtVO);
|
||||||
}
|
}
|
||||||
if(dlvyCompt) {
|
if(dlvyCompt) {
|
||||||
dataMap.put("dlivySttusCd", "75");
|
boDlivyUpdtVO.setDlivySttusCd("75");
|
||||||
processDeliveryPod(dataMap);
|
processDeliveryPod(boDlivyUpdtVO);
|
||||||
}
|
}
|
||||||
successCnt++;
|
successCnt++;
|
||||||
}
|
}
|
||||||
@@ -269,28 +271,160 @@ public class AciPodTasklet implements Tasklet {
|
|||||||
/**
|
/**
|
||||||
* 배송처리
|
* 배송처리
|
||||||
*/
|
*/
|
||||||
private void processDeliveryPod(DataMap dataMap) {
|
private void processDeliveryPod(BODlivyUpdtVO boDlivyUpdtVO) {
|
||||||
dataMap.put("opetrNm", "시스템");
|
boDlivyUpdtVO.setOpetrNm("시스템");
|
||||||
dataMap.put("regusr", 0);
|
boDlivyUpdtVO.setRegusr(0);
|
||||||
dataMap.put("updusr", 0);
|
boDlivyUpdtVO.setUpdusr(0);
|
||||||
|
|
||||||
Map<String, Object> result = responseHandler.handleResponseAsMap(
|
Map<String, Object> message = new HashMap<>();
|
||||||
sendToResrc.ofPost(RESRC.GCONEBO, "/mngr/ordr/dlivy/updateDlivySttusGetbackBatchUpdt", dataMap)
|
try {
|
||||||
);
|
updateBODlvySttusUpdt(boDlivyUpdtVO);
|
||||||
log.debug("result = {}", result);
|
|
||||||
|
|
||||||
// 메시지전송 ==================================================================
|
// 메시지전송 ==================================================================
|
||||||
/*List<DataMap> smsList = mapper.selectDlivySmsListInqire(tempVO);
|
/*List<DataMap> smsList = mapper.selectDlivySmsListInqire(tempVO);
|
||||||
log.debug("메시지 발송 파라미터 확인 : {}", smsList);
|
log.debug("메시지 발송 파라미터 확인 : {}", smsList);
|
||||||
if (!CollectionUtils.isEmpty(smsList)) {
|
if (!CollectionUtils.isEmpty(smsList)) {
|
||||||
System.out.println("smsList = " + smsList);
|
System.out.println("smsList = " + smsList);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
DataMap result = mssageService.insertBOAtmcsndng(smsList);
|
DataMap result = mssageService.insertBOAtmcsndng(smsList);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.debug("메시지 발송 실패");
|
log.debug("메시지 발송 실패");
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
message.put("dlivyInnb", boDlivyUpdtVO.getDlivyInnb());
|
||||||
|
message.put("result", "success");
|
||||||
|
message.put("status", "0");
|
||||||
|
} catch (WnbtRestException wre){
|
||||||
|
message.put("status", "1");
|
||||||
|
log.error(wre.getMessage(), wre);
|
||||||
|
throw new WnbtRestException(wre.getMessage());
|
||||||
|
} catch (Exception e) {
|
||||||
|
message.put("status", "1");
|
||||||
|
message.put("errorMsg", e.getMessage());
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
// throw new WnbtRestException(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("result = {}", message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 출고상태변경 팝업 > 출고 상태변경 ( '배송중', '배송완료' ) > 출고 및 주문 상태 업데이트
|
||||||
|
* @param tempVO
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
public Map<String, Object> updateBODlvySttusUpdt(BODlivyUpdtVO tempVO) {
|
||||||
|
Map<String, Object> message = new HashMap<>();
|
||||||
|
List<DataMap> orderLogList = new ArrayList<>();
|
||||||
|
String logSj = "";
|
||||||
|
String logDtlCn = "";
|
||||||
|
String dlivyCdNb = "";
|
||||||
|
|
||||||
|
Integer ordrItemResult = 0;
|
||||||
|
String ordrInnb = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
log.debug("출고 상태 일괄 변경 tempVO : {}", tempVO);
|
||||||
|
ordrItemResult = AciDlivyMapper.updateBODlivySttusGetbackUpdtArr(tempVO);
|
||||||
|
|
||||||
|
List<DataMap> orderItemList = AciDlivyMapper.selectBOExportOrderItemInqire(tempVO);
|
||||||
|
|
||||||
|
Set<String> ordrDlvyInnbSet = new HashSet<>();
|
||||||
|
|
||||||
|
if (ordrItemResult > 0) {
|
||||||
|
if (orderItemList != null && orderItemList.size() > 0) {
|
||||||
|
ordrInnb = String.valueOf(orderItemList.get(0).get("ordrInnb"));
|
||||||
|
|
||||||
|
// 주문 상품 옵션 상태 부분배송중(60), 배송중(65) 처리 및 수량 수정
|
||||||
|
for (DataMap item : orderItemList) {
|
||||||
|
item.put("dlivySttusCd", tempVO.getDlivySttusCd());
|
||||||
|
item.put("updusr", tempVO.getUpdusr());
|
||||||
|
// 해당하는 주문상품옵션 배송중 수량 update 하는데 배송중 수량이 (판매가 - 결제취소 ) 수량보다 작으면 상태 부분배송중으로 업데이트
|
||||||
|
AciDlivyMapper.updateBOOrdrItemStatusUpdt6575(item); // TODO : 배송중 처리하면 개수안맞아도 걍 다 배송중 처리해야하는건지 확인 필요
|
||||||
|
|
||||||
|
dlivyCdNb = String.valueOf(item.get("dlivyCdNb"));
|
||||||
|
ordrDlvyInnbSet.add(item.get("ordrDlvyInnb").toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] ordrDlvyInnbArr = ordrDlvyInnbSet.toArray(new String[0]);
|
||||||
|
log.debug("주문 배송 set : {}", ordrDlvyInnbSet);
|
||||||
|
log.debug("주문 set : {}", ordrInnb);
|
||||||
|
|
||||||
|
// 주문 배송 상태 부분배송중(60), 배송중(65) 처리
|
||||||
|
DataMap dlvyVO = new DataMap();
|
||||||
|
dlvyVO.put("ordrDlvyInnbArr", ordrDlvyInnbArr);
|
||||||
|
dlvyVO.put("sopmalCd", tempVO.getSopmalCd());
|
||||||
|
dlvyVO.put("ordrInnb", ordrInnb);
|
||||||
|
dlvyVO.put("updusr", tempVO.getUpdusr());
|
||||||
|
Integer dlvyResult = 0;
|
||||||
|
|
||||||
|
dlvyResult = AciDlivyMapper.updateBOOrdrDlvyStatusUpdt6575(dlvyVO);
|
||||||
|
|
||||||
|
// 주문 상태 부분배송중(60), 배송중(65) 처리
|
||||||
|
if (dlvyResult > 0) {
|
||||||
|
DataMap ordrVO = new DataMap();
|
||||||
|
ordrVO.put("ordrInnb", ordrInnb);
|
||||||
|
ordrVO.put("sopmalCd", tempVO.getSopmalCd());
|
||||||
|
ordrVO.put("updusr", tempVO.getUpdusr());
|
||||||
|
AciDlivyMapper.updateBOOrdrStatusUpdt6575(ordrVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("65".equals(tempVO.getDlivySttusCd())) {
|
||||||
|
logSj = "배송중(" + dlivyCdNb + ")";
|
||||||
|
} else if ("75".equals(tempVO.getDlivySttusCd())) {
|
||||||
|
logSj = "배송완료(" + dlivyCdNb + ")";
|
||||||
|
}
|
||||||
|
logDtlCn = "[관리자] " + tempVO.getOpetrNm() + "이(가)" + logSj + " 처리를 하였습니다.";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if ("65".equals(tempVO.getDlivySttusCd())) {
|
||||||
|
logSj = "배송중(ERROR)";
|
||||||
|
} else if ("75".equals(tempVO.getDlivySttusCd())) {
|
||||||
|
logSj = "배송완료(ERROR)";
|
||||||
|
}
|
||||||
|
logDtlCn = "[관리자] " + tempVO.getOpetrNm() + "이(가)" + logSj + " 처리를 실패하였습니다.";
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}*/
|
} catch (WnbtRestException wre){
|
||||||
|
throw new WnbtRestException(wre.getMessage());
|
||||||
|
} catch (Exception e ){
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
} finally {
|
||||||
|
DataMap orderLogVO = new DataMap();
|
||||||
|
if (ordrInnb != null && !ordrInnb.equals("")) {
|
||||||
|
orderLogVO.put("ordrInnb", BigInteger.valueOf(Long.valueOf(ordrInnb)));
|
||||||
|
}
|
||||||
|
orderLogVO.put("sopmalCd", tempVO.getSopmalCd());
|
||||||
|
orderLogVO.put("logSj", logSj);
|
||||||
|
orderLogVO.put("logDtlCn", logDtlCn);
|
||||||
|
orderLogVO.put("logDvCd", "05"); // 출고
|
||||||
|
orderLogVO.put("dvCd", "02"); // 관리자
|
||||||
|
orderLogVO.put("opetrNm", tempVO.getOpetrNm());
|
||||||
|
orderLogVO.put("dlivyCdNb", tempVO.getDlivyInnb());
|
||||||
|
orderLogVO.put("qy", 0);
|
||||||
|
|
||||||
|
orderLogList.add(orderLogVO);
|
||||||
|
|
||||||
|
insertBODlivyOrdrLogRegist(orderLogList);
|
||||||
|
}
|
||||||
|
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 출고 관련 주문 로그 등록
|
||||||
|
*/
|
||||||
|
public void insertBODlivyOrdrLogRegist(List<DataMap> logList) {
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(logList)) {
|
||||||
|
for (DataMap logVO : logList) {
|
||||||
|
AciDlivyMapper.insertOrderLog(logVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.wb.domainserver.acidlivy.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class BODlivyUpdtVO {
|
||||||
|
|
||||||
|
/**출고고유번호*/
|
||||||
|
private String dlivyInnb;
|
||||||
|
/**출고준비(45), 출고완료(55), 배송중(65), 배송완료(75)*/
|
||||||
|
private String dlivySttusCd;
|
||||||
|
/**쇼핑몰 코드*/
|
||||||
|
private String sopmalCd;
|
||||||
|
/** 처리자명 */
|
||||||
|
private String opetrNm;
|
||||||
|
|
||||||
|
/** 등록자*/
|
||||||
|
private int regusr;
|
||||||
|
/** 수정자*/
|
||||||
|
private int updusr;
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.wb.domainserver.mapper.gcone;
|
package com.wb.domainserver.mapper.gcone;
|
||||||
|
|
||||||
import com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO;
|
import com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO;
|
||||||
|
import com.wb.domainserver.acidlivy.vo.BODlivyUpdtVO;
|
||||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
@@ -55,4 +56,19 @@ public interface AciDlivyMapper {
|
|||||||
|
|
||||||
/** 배송처리 대상 주문 목록 조회 (gc_goods_export.DLIVY_STTUS_CD = '55') */
|
/** 배송처리 대상 주문 목록 조회 (gc_goods_export.DLIVY_STTUS_CD = '55') */
|
||||||
List<AciDlivyOrderVO> selectGoodsExportList(String dlivySttusCd);
|
List<AciDlivyOrderVO> selectGoodsExportList(String dlivySttusCd);
|
||||||
|
|
||||||
|
/** 출고 상태 일괄 변경 다건 */
|
||||||
|
public Integer updateBODlivySttusGetbackUpdtArr(BODlivyUpdtVO dlivyVO);
|
||||||
|
|
||||||
|
/** 출고에 해당하는 주문 상품 옵션 조회 */
|
||||||
|
public List<DataMap> selectBOExportOrderItemInqire(BODlivyUpdtVO dlivyVO);
|
||||||
|
|
||||||
|
/** 출고처리 후 주문 상품 옵션 상태 및 수량 수정 */
|
||||||
|
public void updateBOOrdrItemStatusUpdt6575(DataMap ordrItemVO);
|
||||||
|
|
||||||
|
/** 출고처리 후 주문 배송 상태 수정 */
|
||||||
|
public Integer updateBOOrdrDlvyStatusUpdt6575(DataMap ordrItemVO);
|
||||||
|
|
||||||
|
/** 출고처리 후 주문 상태 수정 */
|
||||||
|
public void updateBOOrdrStatusUpdt6575(DataMap ordrItemVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -389,4 +389,244 @@
|
|||||||
]]>
|
]]>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<!-- 출고완료상태의 출고상품 목록 조회 -->
|
||||||
|
<select id="selectBOExportOrderItemInqire">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
EXI.ORDR_GOODS_OPTN_INNB
|
||||||
|
,EXI.OPTN_TY
|
||||||
|
,EXI.SOPMAL_CD
|
||||||
|
,(OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS QY
|
||||||
|
,0 AS PYMNT_PREARNGE_QY -- 지급예정수량
|
||||||
|
,IFNULL((EXI.PYMNT_PREARNGE_QY - OIOP.STEP85), 0) AS ACCMLMNY_PYMNT_QY -- 적립금지급수량
|
||||||
|
,IFNULL(OIOP.STEP85, 0) AS PYMNT_PREARNGE_EXTSH_QY -- 지급예정소멸수량
|
||||||
|
,EX.ORDR_INNB
|
||||||
|
,O.MBR_DV_CD
|
||||||
|
,O.MBR_INNB
|
||||||
|
,OIOP.ORDR_DLVY_INNB
|
||||||
|
,IFNULL(EX.DLIVY_CD_NB, '') AS DLIVY_CD_NB
|
||||||
|
,EX.DLIVY_INNB
|
||||||
|
,IFNULL(OIOP.MLG_VALID_PD, 0) AS MLG_VALID_PD
|
||||||
|
,IFNULL(OIOP.MLG_VALID_PD_AT, 'N') AS MLG_VALID_PD_AT
|
||||||
|
,CASE
|
||||||
|
WHEN OIOP.STEP85 = 0 THEN ROUND(OIOP.MLG_ACCML_UNIT * ( OIOP.ORDR_QY - OIOP.STEP85 ) + OIOP.MLG_ACCML_REST)
|
||||||
|
WHEN OIOP.STEP85 > 0 THEN ROUND(OIOP.MLG_ACCML_UNIT * ( OIOP.ORDR_QY - OIOP.STEP85 ))
|
||||||
|
END AS MLG_ACCML_AMT
|
||||||
|
FROM GC_GOODS_EXPORT_ITEM EXI
|
||||||
|
INNER JOIN GC_GOODS_EXPORT EX ON EXI.SOPMAL_CD = EX.SOPMAL_CD
|
||||||
|
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
|
||||||
|
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
|
||||||
|
AND EXI.OPTN_TY = OIOP.OPTN_TY
|
||||||
|
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
|
||||||
|
AND OIOP.PURCHS_DCSN_QY < ( OIOP.ORDR_QY - OIOP.STEP85 )
|
||||||
|
INNER JOIN GC_ORDER O ON EX.SOPMAL_CD = O.SOPMAL_CD
|
||||||
|
AND EX.ORDR_INNB = O.ORDR_INNB
|
||||||
|
WHERE 1 = 1
|
||||||
|
AND EX.SOPMAL_CD = #{sopmalCd}
|
||||||
|
]]>
|
||||||
|
<choose>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlivyInnb)">
|
||||||
|
<![CDATA[
|
||||||
|
AND EX.DLIVY_INNB = #{dlivyInnb}
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrGoodsOptnInnb)">
|
||||||
|
<![CDATA[
|
||||||
|
AND EXI.OPTN_TY = #{optnTy}
|
||||||
|
AND EXI.ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrInnb)">
|
||||||
|
<![CDATA[
|
||||||
|
AND EX.ORDR_INNB = #{ordrInnb}
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 출고 처리 후 주문 상품 옵션 상태 변경 -->
|
||||||
|
<update id="updateBOOrdrItemStatusUpdt6575">
|
||||||
|
<![CDATA[
|
||||||
|
UPDATE GC_ORDER_ITEM_OPTION SET
|
||||||
|
]]>
|
||||||
|
<choose>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(dlivySttusCd, '65')">
|
||||||
|
<![CDATA[
|
||||||
|
ORDR_STTUS_CD =
|
||||||
|
CASE
|
||||||
|
WHEN (ORDR_QY - STEP85) > #{qy} THEN '60'
|
||||||
|
WHEN (ORDR_QY - STEP85) = #{qy} THEN '65'
|
||||||
|
ELSE ORDR_STTUS_CD
|
||||||
|
END
|
||||||
|
,STEP65 = #{qy}
|
||||||
|
,STEP55 = CASE
|
||||||
|
WHEN (STEP55 - #{qy}) < 0 THEN 0
|
||||||
|
ELSE (STEP55 - #{qy})
|
||||||
|
END,
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(dlivySttusCd, '75')">
|
||||||
|
<![CDATA[
|
||||||
|
ORDR_STTUS_CD =
|
||||||
|
CASE
|
||||||
|
WHEN (ORDR_QY - STEP85) > #{qy} THEN '70'
|
||||||
|
WHEN (ORDR_QY - STEP85) = #{qy} THEN '75'
|
||||||
|
ELSE ORDR_STTUS_CD
|
||||||
|
END
|
||||||
|
,STEP55 = CASE
|
||||||
|
WHEN (STEP55 - #{qy}) < 0 THEN 0
|
||||||
|
ELSE (STEP55 - #{qy})
|
||||||
|
END
|
||||||
|
,STEP65 = CASE
|
||||||
|
WHEN (STEP65 - #{qy}) < 0 THEN 0
|
||||||
|
ELSE (STEP65 - #{qy})
|
||||||
|
END
|
||||||
|
,STEP75 = #{qy},
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(dlivySttusCd, '55')">
|
||||||
|
<![CDATA[
|
||||||
|
ORDR_STTUS_CD =
|
||||||
|
CASE
|
||||||
|
WHEN (ORDR_QY - STEP85) > #{qy} THEN '50'
|
||||||
|
WHEN (ORDR_QY - STEP85) = #{qy} THEN '55'
|
||||||
|
ELSE ORDR_STTUS_CD
|
||||||
|
END
|
||||||
|
,STEP55 = #{qy},
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
<![CDATA[
|
||||||
|
STEP45 = 0
|
||||||
|
,UPDT_DT = SYSDATE()
|
||||||
|
WHERE SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND OPTN_TY = #{optnTy}
|
||||||
|
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
||||||
|
]]>
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<!-- 출고 처리 후 주문 배송 상태 변경
|
||||||
|
SH.ORDR_STTUS_CD =
|
||||||
|
CASE
|
||||||
|
WHEN EXISTS (
|
||||||
|
SELECT
|
||||||
|
1
|
||||||
|
FROM GC_ORDER_ITEM_OPTION OIOP
|
||||||
|
WHERE OIOP.SOPMAL_CD = SH.SOPMAL_CD
|
||||||
|
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
|
||||||
|
AND OIOP.ORDR_STTUS_CD = '60'
|
||||||
|
) THEN '60'
|
||||||
|
WHEN EXISTS (
|
||||||
|
SELECT
|
||||||
|
1
|
||||||
|
FROM GC_ORDER_ITEM_OPTION OIOP
|
||||||
|
WHERE OIOP.SOPMAL_CD = SH.SOPMAL_CD
|
||||||
|
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
|
||||||
|
AND OIOP.ORDR_STTUS_CD = '65'
|
||||||
|
) THEN '65'
|
||||||
|
ELSE ORDR_STTUS_CD
|
||||||
|
END
|
||||||
|
|
||||||
|
-->
|
||||||
|
<update id="updateBOOrdrDlvyStatusUpdt6575">
|
||||||
|
<![CDATA[
|
||||||
|
UPDATE
|
||||||
|
GC_ORDER_SHIPPING SH,
|
||||||
|
(
|
||||||
|
SELECT CASE WHEN MAX(OIOP.ORDR_STTUS_CD) = MIN(OIOP.ORDR_STTUS_CD) THEN MAX(OIOP.ORDR_STTUS_CD)
|
||||||
|
ELSE CAST(MAX(OIOP.ORDR_STTUS_CD) - 5 AS CHAR(2))
|
||||||
|
END ORDR_STTUS_CD
|
||||||
|
, SH.SOPMAL_CD, SH.ORDR_INNB, SH.ORDR_DLVY_INNB
|
||||||
|
FROM GC_ORDER_SHIPPING SH
|
||||||
|
INNER JOIN GC_ORDER_ITEM_OPTION OIOP
|
||||||
|
ON SH.SOPMAL_CD = OIOP.SOPMAL_CD
|
||||||
|
AND SH.ORDR_DLVY_INNB = OIOP.ORDR_DLVY_INNB
|
||||||
|
AND OIOP.ORDR_QY <> OIOP.STEP85
|
||||||
|
WHERE SH.SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND SH.ORDR_INNB = #{ordrInnb}
|
||||||
|
]]>
|
||||||
|
<choose>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrDlvyInnb)">
|
||||||
|
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
||||||
|
</when>
|
||||||
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrDlvyInnbArr)">
|
||||||
|
<![CDATA[
|
||||||
|
AND SH.ORDR_DLVY_INNB IN
|
||||||
|
]]>
|
||||||
|
<foreach collection="ordrDlvyInnbArr" item="ordrDlvyInnbArr" open="(" close=")" separator=",">
|
||||||
|
#{ordrDlvyInnbArr}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
<![CDATA[
|
||||||
|
AND SH.USE_AT = 'Y'
|
||||||
|
GROUP BY SH.SOPMAL_CD, SH.ORDR_INNB, SH.ORDR_DLVY_INNB
|
||||||
|
]]>
|
||||||
|
<![CDATA[
|
||||||
|
) STEP
|
||||||
|
SET
|
||||||
|
SH.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD
|
||||||
|
,SH.MNGR_INNB = #{updusr}
|
||||||
|
,SH.UPDT_DT = SYSDATE()
|
||||||
|
WHERE 1 = 1
|
||||||
|
AND SH.SOPMAL_CD = STEP.SOPMAL_CD
|
||||||
|
AND SH.ORDR_INNB = STEP.ORDR_INNB
|
||||||
|
AND SH.ORDR_DLVY_INNB = STEP.ORDR_DLVY_INNB
|
||||||
|
]]>
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<!-- 출고 처리 후 주문 상태 변경
|
||||||
|
UPDATE GC_ORDER O SET
|
||||||
|
O.ORDR_STTUS_CD =
|
||||||
|
CASE
|
||||||
|
WHEN EXISTS (
|
||||||
|
SELECT
|
||||||
|
1
|
||||||
|
FROM GC_ORDER_SHIPPING SH
|
||||||
|
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
|
||||||
|
AND O.ORDR_INNB = SH.ORDR_INNB
|
||||||
|
AND SH.ORDR_STTUS_CD = '60'
|
||||||
|
) THEN '60'
|
||||||
|
WHEN EXISTS (
|
||||||
|
SELECT
|
||||||
|
1
|
||||||
|
FROM GC_ORDER_SHIPPING SH
|
||||||
|
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
|
||||||
|
AND O.ORDR_INNB = SH.ORDR_INNB
|
||||||
|
AND SH.ORDR_STTUS_CD = '65'
|
||||||
|
) THEN '65'
|
||||||
|
ELSE ORDR_STTUS_CD
|
||||||
|
END
|
||||||
|
WHERE O.SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND O.ORDR_INNB = #{ordrInnb}
|
||||||
|
AND O.USE_AT = 'Y'
|
||||||
|
-->
|
||||||
|
<update id="updateBOOrdrStatusUpdt6575">
|
||||||
|
<![CDATA[
|
||||||
|
UPDATE
|
||||||
|
GC_ORDER O,
|
||||||
|
(SELECT CASE WHEN MAX(SH.ORDR_STTUS_CD) = MIN(SH.ORDR_STTUS_CD) THEN MAX(SH.ORDR_STTUS_CD)
|
||||||
|
ELSE CAST(MAX(SH.ORDR_STTUS_CD) - 5 AS CHAR(2))
|
||||||
|
END ORDR_STTUS_CD
|
||||||
|
, O.SOPMAL_CD, O.ORDR_INNB
|
||||||
|
FROM GC_ORDER O
|
||||||
|
INNER JOIN GC_ORDER_SHIPPING SH
|
||||||
|
ON O.SOPMAL_CD = SH.SOPMAL_CD
|
||||||
|
AND O.ORDR_INNB = SH.ORDR_INNB
|
||||||
|
AND SH.ORDR_STTUS_CD <> '85'
|
||||||
|
WHERE O.SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND O.ORDR_INNB = #{ordrInnb}
|
||||||
|
GROUP BY O.SOPMAL_CD, O.ORDR_INNB
|
||||||
|
) STEP
|
||||||
|
SET
|
||||||
|
O.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD
|
||||||
|
,O.MNGR_INNB = #{updusr}
|
||||||
|
,O.UPDT_DT = SYSDATE()
|
||||||
|
WHERE 1 = 1
|
||||||
|
AND O.SOPMAL_CD = STEP.SOPMAL_CD
|
||||||
|
AND O.ORDR_INNB = STEP.ORDR_INNB
|
||||||
|
AND O.USE_AT = 'Y'
|
||||||
|
]]>
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user