|
@@ -271,6 +271,7 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
|
|
|
|
|
// 订单商品项列表
|
|
// 订单商品项列表
|
|
|
List<OrderItemDTO> itemDTOList = new ArrayList<>();
|
|
List<OrderItemDTO> itemDTOList = new ArrayList<>();
|
|
|
|
|
+ String presaleShippingTime = null; // 预售最晚发货时间
|
|
|
|
|
|
|
|
List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
|
|
List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
|
|
|
log.info("fsStoreOrderItemVOS==========>{}",fsStoreOrderItemVOS);
|
|
log.info("fsStoreOrderItemVOS==========>{}",fsStoreOrderItemVOS);
|
|
@@ -296,9 +297,36 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
orderItemDTO.setQty(item.getNum().intValue());
|
|
orderItemDTO.setQty(item.getNum().intValue());
|
|
|
orderItemDTO.setOuterOiId(String.format("%s%s",fsStoreOrder.getOrderCode(),item.getItemId()));
|
|
orderItemDTO.setOuterOiId(String.format("%s%s",fsStoreOrder.getOrderCode(),item.getItemId()));
|
|
|
itemDTOList.add(orderItemDTO);
|
|
itemDTOList.add(orderItemDTO);
|
|
|
|
|
+
|
|
|
|
|
+ // 检查商品是否有presale标签,收集最晚发货时间
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (StringUtils.isNotBlank(fsStoreProduct.getTagInfo())) {
|
|
|
|
|
+ JSONObject tagObj = JSON.parseObject(fsStoreProduct.getTagInfo());
|
|
|
|
|
+ Object typeObj = tagObj.get("type");
|
|
|
|
|
+ boolean isPresale = false;
|
|
|
|
|
+ if (typeObj instanceof com.alibaba.fastjson.JSONArray) {
|
|
|
|
|
+ isPresale = ((com.alibaba.fastjson.JSONArray) typeObj).contains("presale");
|
|
|
|
|
+ } else if (typeObj instanceof String) {
|
|
|
|
|
+ isPresale = "presale".equals(typeObj);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (isPresale && tagObj.getString("shippingTime") != null) {
|
|
|
|
|
+ String shippingTime = tagObj.getString("shippingTime");
|
|
|
|
|
+ if (presaleShippingTime == null || shippingTime.compareTo(presaleShippingTime) > 0) {
|
|
|
|
|
+ presaleShippingTime = shippingTime;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("检查商品presale标签失败:{}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
shopOrderDTO.setItems(itemDTOList);
|
|
shopOrderDTO.setItems(itemDTOList);
|
|
|
|
|
|
|
|
|
|
+ // 如果有预售发货时间,设置到planDeliveryDate
|
|
|
|
|
+ if (presaleShippingTime != null) {
|
|
|
|
|
+ shopOrderDTO.setPlanDeliveryDate(presaleShippingTime);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 实际支付金额
|
|
// 实际支付金额
|
|
|
PaymentDTO paymentDTO = new PaymentDTO();
|
|
PaymentDTO paymentDTO = new PaymentDTO();
|
|
|
paymentDTO.setAmount(fsStoreOrder.getPayMoney().doubleValue());
|
|
paymentDTO.setAmount(fsStoreOrder.getPayMoney().doubleValue());
|
|
@@ -397,6 +425,7 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
|
|
|
|
|
// 订单商品项列表
|
|
// 订单商品项列表
|
|
|
List<OrderItemDTO> itemDTOList = new ArrayList<>();
|
|
List<OrderItemDTO> itemDTOList = new ArrayList<>();
|
|
|
|
|
+ String presaleShippingTime = null; // 预售最晚发货时间
|
|
|
|
|
|
|
|
List<LiveOrderItem> liveOrderItems = liveOrderItemMapper.selectLiveOrderItemByOrderId(liveOrder.getOrderId());
|
|
List<LiveOrderItem> liveOrderItems = liveOrderItemMapper.selectLiveOrderItemByOrderId(liveOrder.getOrderId());
|
|
|
log.info("liveOrderItems==========>{}",liveOrderItems);
|
|
log.info("liveOrderItems==========>{}",liveOrderItems);
|
|
@@ -422,9 +451,36 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
orderItemDTO.setQty(item.getNum().intValue());
|
|
orderItemDTO.setQty(item.getNum().intValue());
|
|
|
orderItemDTO.setOuterOiId(String.format("%s%s",liveOrder.getOrderCode(),item.getItemId()));
|
|
orderItemDTO.setOuterOiId(String.format("%s%s",liveOrder.getOrderCode(),item.getItemId()));
|
|
|
itemDTOList.add(orderItemDTO);
|
|
itemDTOList.add(orderItemDTO);
|
|
|
|
|
+
|
|
|
|
|
+ // 检查商品是否有presale标签,收集最晚发货时间
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (StringUtils.isNotBlank(fsStoreProduct.getTagInfo())) {
|
|
|
|
|
+ JSONObject tagObj = JSON.parseObject(fsStoreProduct.getTagInfo());
|
|
|
|
|
+ Object typeObj = tagObj.get("type");
|
|
|
|
|
+ boolean isPresale = false;
|
|
|
|
|
+ if (typeObj instanceof com.alibaba.fastjson.JSONArray) {
|
|
|
|
|
+ isPresale = ((com.alibaba.fastjson.JSONArray) typeObj).contains("presale");
|
|
|
|
|
+ } else if (typeObj instanceof String) {
|
|
|
|
|
+ isPresale = "presale".equals(typeObj);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (isPresale && tagObj.getString("shippingTime") != null) {
|
|
|
|
|
+ String shippingTime = tagObj.getString("shippingTime");
|
|
|
|
|
+ if (presaleShippingTime == null || shippingTime.compareTo(presaleShippingTime) > 0) {
|
|
|
|
|
+ presaleShippingTime = shippingTime;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("检查商品presale标签失败:{}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
shopOrderDTO.setItems(itemDTOList);
|
|
shopOrderDTO.setItems(itemDTOList);
|
|
|
|
|
|
|
|
|
|
+ // 如果有预售发货时间,设置到planDeliveryDate
|
|
|
|
|
+ if (presaleShippingTime != null) {
|
|
|
|
|
+ shopOrderDTO.setPlanDeliveryDate(presaleShippingTime);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 实际支付金额
|
|
// 实际支付金额
|
|
|
PaymentDTO paymentDTO = new PaymentDTO();
|
|
PaymentDTO paymentDTO = new PaymentDTO();
|
|
|
paymentDTO.setAmount(liveOrder.getPayMoney().doubleValue());
|
|
paymentDTO.setAmount(liveOrder.getPayMoney().doubleValue());
|