|
@@ -283,10 +283,18 @@ public class ShipServiceImpl implements ShipService {
|
|
|
}
|
|
|
shopOrder.setSplitFlag(0);
|
|
|
shipMapper.updateShopOrderShip(shopOrder.getShopOrderId(), shopOrder.getOutStoreNum(), shopOrder.getOutStoreTimes(), shopOrder.getSendOutStatus());
|
|
|
-
|
|
|
/*
|
|
|
* 修改主订单发货状态
|
|
|
*/
|
|
|
+ setMainOrderStatus(shopOrder);
|
|
|
+ return ResponseJson.success(logisticsBatch.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改主订单发货状态
|
|
|
+ * @param shopOrder 子订单
|
|
|
+ */
|
|
|
+ private void setMainOrderStatus(ShopOrderVo shopOrder) {
|
|
|
OrderVo order = orderCommonMapper.getOrderByOrderId(shopOrder.getOrderId());
|
|
|
// 主订单发货状态
|
|
|
Integer sendOutStatus = order.getSendOutStatus();
|
|
@@ -326,7 +334,6 @@ public class ShipServiceImpl implements ShipService {
|
|
|
log.info("发货短信推送失败,orderId>>>>" + order.getOrderId());
|
|
|
}
|
|
|
}
|
|
|
- return ResponseJson.success(logisticsBatch.getId());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -387,6 +394,10 @@ public class ShipServiceImpl implements ShipService {
|
|
|
return ResponseJson.success(map);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 设置 已发,已退,已取消发货数量
|
|
|
+ * @param recordVo 发货记录
|
|
|
+ */
|
|
|
private void setLogisticsRecordNum(LogisticsRecordVo recordVo) {
|
|
|
OrderProductVo orderProduct = shipMapper.getOrderProductById(recordVo.getOrderProductId());
|
|
|
recordVo.setBuyNum(orderProduct.getNum() + orderProduct.getPresentNum());
|
|
@@ -453,5 +464,69 @@ public class ShipServiceImpl implements ShipService {
|
|
|
return ResponseJson.success(map);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 删除物流信息
|
|
|
+ *
|
|
|
+ * @param logisticsInfoId 发货物流信息Id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson<Void> deleteLogisticsInfo(Integer logisticsInfoId) {
|
|
|
+ shipMapper.deleteLogisticsInfoByInfoId(logisticsInfoId);
|
|
|
+ return ResponseJson.success(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 供应商撤销发货
|
|
|
+ *
|
|
|
+ * @param logisticsBatchId 发货物流批次Id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson<Void> cancelDelivery(Integer logisticsBatchId) {
|
|
|
+ // 发货物流批次
|
|
|
+ LogisticsBatchVo logisticsBatch = shipMapper.getLogisticsBatchById(logisticsBatchId);
|
|
|
+ if (null == logisticsBatch) {
|
|
|
+ return ResponseJson.error("物流异常,logisticsBatchID:" + logisticsBatchId, null);
|
|
|
+ }
|
|
|
+ // 获取发货物流记录
|
|
|
+ List<LogisticsRecordVo> recordList = orderCommonMapper.getLogisticsRecord(logisticsBatch.getShopOrderId(), logisticsBatch.getId());
|
|
|
+ // 本批次发货数量
|
|
|
+ int num = 0;
|
|
|
+ for (LogisticsRecordVo logisticsRecord : recordList) {
|
|
|
+ num += logisticsRecord.getNum();
|
|
|
+ // 订单商品修改
|
|
|
+ OrderProductVo orderProduct = shipMapper.getOrderProductById(logisticsRecord.getOrderProductId());
|
|
|
+ int notOutStore = orderProduct.getNotOutStore() + logisticsRecord.getNum();
|
|
|
+ // 保存订单商品未出库数量
|
|
|
+ shipMapper.updateNotOutStore(orderProduct.getOrderProductId(), notOutStore);
|
|
|
+ }
|
|
|
+ ShopOrderVo shopOrder = shipMapper.getShopOrder(logisticsBatch.getShopOrderId());
|
|
|
+ if (null == shopOrder) {
|
|
|
+ return ResponseJson.error("订单异常,shopOrderId:" + logisticsBatch.getShopOrderId(), null);
|
|
|
+ }
|
|
|
+ // 子订单修改
|
|
|
+ int outStoreNum = shopOrder.getOutStoreNum() - num;
|
|
|
+ shopOrder.setOutStoreNum(outStoreNum);
|
|
|
+ int productNum = shopOrder.getPresentNum() + shopOrder.getItemCount();
|
|
|
+ if (productNum > shopOrder.getOutStoreNum() && shopOrder.getOutStoreNum() > 0) {
|
|
|
+ shopOrder.setSendOutStatus(2);
|
|
|
+ } else if (productNum == shopOrder.getOutStoreNum()) {
|
|
|
+ shopOrder.setSendOutStatus(3);
|
|
|
+ } else if (shopOrder.getOutStoreNum() == 0) {
|
|
|
+ shopOrder.setSendOutStatus(1);
|
|
|
+ } else {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return ResponseJson.error("发货数量异常", null);
|
|
|
+ }
|
|
|
+ // 修改子订单
|
|
|
+ shipMapper.updateShopOrderShip(shopOrder.getShopOrderId(), shopOrder.getOutStoreNum(), shopOrder.getOutStoreTimes(), shopOrder.getSendOutStatus());
|
|
|
+ // 修改主订单发货状态
|
|
|
+ setMainOrderStatus(shopOrder);
|
|
|
+ // 撤销发货
|
|
|
+ shipMapper.deleteLogisticsBatchByBatchId(logisticsBatchId);
|
|
|
+ shipMapper.deleteLogisticsRecordByBatchId(logisticsBatchId);
|
|
|
+ shipMapper.deleteLogisticsInfoByBatchId(logisticsBatchId);
|
|
|
+ return ResponseJson.success(null);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|