|
|
@@ -54,6 +54,9 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
@Autowired
|
|
|
private IFsStoreOrderService fsStoreOrderService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ILiveOrderService liveOrderService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private LiveOrderMapper liveorderMapper;
|
|
|
|
|
|
@@ -238,6 +241,35 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public ErpOrderQueryResponse getOrderLive(ErpOrderQueryRequert param) {
|
|
|
+ // 1. 构建查询请求DTO
|
|
|
+ OrderQueryRequestDTO requestDTO = new OrderQueryRequestDTO();
|
|
|
+ requestDTO.setOIds(Collections.singletonList(Long.valueOf(param.getCode())));
|
|
|
+
|
|
|
+
|
|
|
+ // 2. 调用ERP服务查询订单
|
|
|
+ OrderQueryResponseDTO query = jstErpHttpService.query(requestDTO);
|
|
|
+
|
|
|
+ // 3. 构建响应对象
|
|
|
+ ErpOrderQueryResponse response = new ErpOrderQueryResponse();
|
|
|
+
|
|
|
+ // 4. 设置基本响应信息
|
|
|
+
|
|
|
+ // 5. 转换订单数据
|
|
|
+ if (query.getOrders() != null && !query.getOrders().isEmpty()) {
|
|
|
+ List<ErpOrderQuery> erpOrders = query.getOrders().stream()
|
|
|
+ .map(this::convertToErpOrderQueryLive)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ response.setOrders(erpOrders);
|
|
|
+ } else {
|
|
|
+ response.setOrders(Collections.emptyList());
|
|
|
+ }
|
|
|
+
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 将OrderQueryResponseDTO.Order转换为ErpOrderQuery
|
|
|
*
|
|
|
@@ -248,7 +280,6 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
ErpOrderQuery erpOrder = new ErpOrderQuery();
|
|
|
|
|
|
FsStoreOrder fsStoreOrder = fsStoreOrderService.selectFsStoreOrderByOrderCode(order.getSoId());
|
|
|
- if(fsStoreOrder == null)
|
|
|
Asserts.notNull(fsStoreOrder,"该订单号没有找到!");
|
|
|
|
|
|
// 设置基本订单信息
|
|
|
@@ -319,7 +350,86 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
|
|
|
return erpOrder;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 将OrderQueryResponseDTO.Order转换为ErpOrderQuery
|
|
|
+ *
|
|
|
+ * @param order 订单数据
|
|
|
+ * @return ErpOrderQuery 转换后的订单数据
|
|
|
+ */
|
|
|
+ private ErpOrderQuery convertToErpOrderQueryLive(OrderQueryResponseDTO.Order order) {
|
|
|
+ ErpOrderQuery erpOrder = new ErpOrderQuery();
|
|
|
|
|
|
+ LiveOrder liveOrder = liveOrderService.selectLiveOrderByOrderCode(order.getSoId());
|
|
|
+ Asserts.notNull(liveOrder, "该订单号没有找到!");
|
|
|
+
|
|
|
+ // 设置基本订单信息
|
|
|
+ erpOrder.setCode(order.getSoId());
|
|
|
+
|
|
|
+ // 计算订单总数量
|
|
|
+ if (order.getItems() != null && !order.getItems().isEmpty()) {
|
|
|
+ int totalQty = order.getItems().stream()
|
|
|
+ .mapToInt(OrderQueryResponseDTO.OrderItem::getQty)
|
|
|
+ .sum();
|
|
|
+ erpOrder.setQty(totalQty);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置金额相关信息
|
|
|
+ erpOrder.setAmount(order.getAmount() != null ? order.getAmount().doubleValue() : null);
|
|
|
+ erpOrder.setPayment(order.getPaidAmount() != null ? order.getPaidAmount().doubleValue() : null);
|
|
|
+
|
|
|
+ // 设置其他订单属性
|
|
|
+ erpOrder.setCod(order.getIsCod());
|
|
|
+ erpOrder.setPlatform_code(order.getOrderFrom());
|
|
|
+
|
|
|
+ // 尝试解析创建时间
|
|
|
+ try {
|
|
|
+ if (order.getCreated() != null) {
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ erpOrder.setCreatetime(formatter.parse(order.getCreated()));
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 日期解析异常处理
|
|
|
+ // 可以记录日志或保持为null
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置店铺信息
|
|
|
+ erpOrder.setShop_name(order.getShopName());
|
|
|
+ erpOrder.setShop_code(String.valueOf(order.getShopId()));
|
|
|
+
|
|
|
+ // 设置物流信息
|
|
|
+ erpOrder.setExpress_name(order.getLogisticsCompany());
|
|
|
+ erpOrder.setExpress_code(order.getLId());
|
|
|
+
|
|
|
+ // 设置收件人信息
|
|
|
+ erpOrder.setReceiver_name(liveOrder.getUserName());
|
|
|
+ erpOrder.setReceiver_phone(liveOrder.getUserPhone());
|
|
|
+ erpOrder.setReceiver_mobile(liveOrder.getUserPhone());
|
|
|
+
|
|
|
+ // 构建完整地址
|
|
|
+ erpOrder.setReceiver_address(liveOrder.getUserAddress());
|
|
|
+
|
|
|
+ // 如果是已发货
|
|
|
+ if(ObjectUtil.equal(order.getStatus(), ErpQueryOrderStatusEnum.SENT.getCode())){
|
|
|
+ List<ErpDeliverys> deliverysList = new ArrayList<>();
|
|
|
+
|
|
|
+ ErpDeliverys delivery = new ErpDeliverys();
|
|
|
+ delivery.setMail_no(order.getLId());
|
|
|
+ delivery.setExpress_code(order.getLcId());
|
|
|
+ delivery.setExpress_name(order.getLogisticsCompany());
|
|
|
+ delivery.setDelivery(true);
|
|
|
+ delivery.setCode(order.getSoId());
|
|
|
+
|
|
|
+ deliverysList.add(delivery);
|
|
|
+ erpOrder.setDeliverys(deliverysList);
|
|
|
+
|
|
|
+ // 设置发货状态,假设有物流单号就是已发货状态
|
|
|
+ erpOrder.setDelivery_state(1);
|
|
|
+ } else {
|
|
|
+ erpOrder.setDelivery_state(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ return erpOrder;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public BaseResponse refundUpdate(ErpRefundUpdateRequest param) {
|