|
@@ -2,6 +2,7 @@ package com.style24.core.biz.service;
|
|
|
|
|
|
|
|
import java.text.NumberFormat;
|
|
import java.text.NumberFormat;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -649,8 +650,48 @@ public class TscOrderService {
|
|
|
*/
|
|
*/
|
|
|
@Transactional("shopTxnManager")
|
|
@Transactional("shopTxnManager")
|
|
|
public void updateOrderAddr(Order order) {
|
|
public void updateOrderAddr(Order order) {
|
|
|
|
|
+ // 2022.01.06 card007 주소 수정 시 총알배송여부 체크 후 일반배송으로 변경처리 추가
|
|
|
|
|
+ // 총알배송여부 체크
|
|
|
|
|
+ String shotDelvYn = "N";
|
|
|
|
|
+ for (Order tmp : orderDao.getOrderDetailStatInfo(order)) {
|
|
|
|
|
+ if ("Y".equals(tmp.getShotDelvYn())) {
|
|
|
|
|
+ shotDelvYn = "Y";
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 총알배송 날짜 및 시간 조건 체크
|
|
|
|
|
+ if ("Y".equals(shotDelvYn)) {
|
|
|
|
|
+ Collection<Order> tmp = orderDao.getOrderDtlNoForModifyAddr(order);
|
|
|
|
|
+ if (tmp.size() > 0) {
|
|
|
|
|
+ shotDelvYn = tmp.iterator().next().getShotDelvYn();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 총알배송 가능 배송지 체크
|
|
|
|
|
+ if ("Y".equals(shotDelvYn)) {
|
|
|
|
|
+ int result = orderDao.getDailyDeliveryZoneInfo(order);
|
|
|
|
|
+
|
|
|
|
|
+ if (result == 0) {
|
|
|
|
|
+ shotDelvYn = "N";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 주문 배송정보 수정
|
|
|
orderDao.updateOrderAddr(order);
|
|
orderDao.updateOrderAddr(order);
|
|
|
- coreWmsService.updateWmsDeliveryChangeAddr(order);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (order.getDeliveryorderno() > 0) {
|
|
|
|
|
+ // WMS 배송정보 수정
|
|
|
|
|
+ coreWmsService.updateWmsDeliveryChangeAddr(order);
|
|
|
|
|
+
|
|
|
|
|
+ // WMS 택배사 수정 (총알배송 -> 일반배송)
|
|
|
|
|
+ if ("N".equals(shotDelvYn)) {
|
|
|
|
|
+ order.setShipCompCd("05");
|
|
|
|
|
+ order.setShipCompNm("CJ 대한통운");
|
|
|
|
|
+
|
|
|
|
|
+ coreWmsService.updateWmsDeliveryShipComp(order);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -3511,6 +3552,61 @@ public class TscOrderService {
|
|
|
public Order getAddDelvFee(Order order) {
|
|
public Order getAddDelvFee(Order order) {
|
|
|
return scmDao.getAddDelvFee(order);
|
|
return scmDao.getAddDelvFee(order);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 주소수정 가능 여부
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param Order
|
|
|
|
|
+ * @return Boolean
|
|
|
|
|
+ * @author card007
|
|
|
|
|
+ * @since 2022. 01. 06
|
|
|
|
|
+ */
|
|
|
|
|
+ public GagaMap canModifyAddress(Order order) {
|
|
|
|
|
+ GagaMap result = new GagaMap();
|
|
|
|
|
+ int rst = 1;
|
|
|
|
|
+ Integer deliveryorderno = 0;
|
|
|
|
|
+
|
|
|
|
|
+ // 주소수정 가능 주문상세상태값 설정
|
|
|
|
|
+ String[] canModifyStat = {"G013_10", "G013_20", "G013_25", "G013_30", "G013_35"};
|
|
|
|
|
+ List<String> canModifyStatList = Arrays.asList(canModifyStat);
|
|
|
|
|
+
|
|
|
|
|
+ Order goodsPrepare = new Order();
|
|
|
|
|
+ for (Order data : orderDao.getOrderDetailStatInfo(order)) {
|
|
|
|
|
+ String ordDtlStat = data.getOrdDtlStat();
|
|
|
|
|
+ if (!canModifyStatList.contains(ordDtlStat)) {
|
|
|
|
|
+ rst = 0;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (OrderDetailStat.GOODS_PREPARE.value().equals(ordDtlStat) && "Y".equals(data.getSelfGoodsYn())) {
|
|
|
|
|
+ goodsPrepare = data;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 상품준비중 WMS IF 상태값 체크 (10일떄 수정가능)
|
|
|
|
|
+ List<Integer> deliveryOrderNoList = new ArrayList<>();
|
|
|
|
|
+ if (rst > 0 && goodsPrepare.getOrdNo() > 0) {
|
|
|
|
|
+ // WMS 배송정보 조회 용 주문상세번호 조회
|
|
|
|
|
+ List<Integer> ordDtlNoList = new ArrayList<>();
|
|
|
|
|
+ for(Order tmp : orderDao.getOrderDtlNoForModifyAddr(goodsPrepare)) {
|
|
|
|
|
+ ordDtlNoList.add(tmp.getOrdDtlNo());
|
|
|
|
|
+ }
|
|
|
|
|
+ goodsPrepare.setOrdDtlNoArr(ordDtlNoList.stream().mapToInt(Integer::intValue).toArray());
|
|
|
|
|
+
|
|
|
|
|
+ // WMS 배송정보 조회 용 배송주문번호 조회
|
|
|
|
|
+ for (Order tmp : coreWmsService.getDeliveryOrderNo(goodsPrepare)) {
|
|
|
|
|
+ deliveryOrderNoList.add(tmp.getDeliveryorderno());
|
|
|
|
|
+ }
|
|
|
|
|
+ goodsPrepare.setDeliveryOrderNoArr(deliveryOrderNoList.stream().mapToInt(Integer::intValue).toArray());
|
|
|
|
|
+
|
|
|
|
|
+ rst = coreWmsService.getCanModifyAddr(goodsPrepare);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ result.setInt("result", rst);
|
|
|
|
|
+ result.setInt("deliveryorderno", deliveryorderno);
|
|
|
|
|
+
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|