|
@@ -38,6 +38,7 @@ import com.kmall.admin.utils.data.response.ResponseMessageData;
|
|
|
import com.kmall.admin.utils.oms.OmsSign;
|
|
|
import com.kmall.admin.utils.pdf.BarcodeUtil;
|
|
|
import com.kmall.admin.websocket.WebSocketServer;
|
|
|
+import com.kmall.api.entity.OrderGoodsRestoreVo;
|
|
|
import com.kmall.api.entity.OrderGoodsVo;
|
|
|
import com.kmall.api.entity.OrderVo;
|
|
|
import com.kmall.api.util.CommonUtil;
|
|
@@ -83,6 +84,8 @@ import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.*;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@Service("orderService")
|
|
@@ -100,6 +103,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
@Autowired
|
|
|
private OrderGoodsDao orderGoodsDao;
|
|
|
@Autowired
|
|
|
+ private OrderGoodsService orderGoodsService;
|
|
|
+ @Autowired
|
|
|
+ private ProductStoreRelaService productStoreRelaService;
|
|
|
+ @Autowired
|
|
|
private SysPrinterDao printerDao;
|
|
|
@Autowired
|
|
|
private UserDao userDao;
|
|
@@ -1627,6 +1634,78 @@ public class OrderServiceImpl implements OrderService {
|
|
|
return orderDao.queryOffilineOrderList(map);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 还原查验单库存方法
|
|
|
+ *
|
|
|
+ * @param orderSns 查验单订单编号
|
|
|
+ * @return 是否还原成功, true: 成功,false: 失败
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Boolean restore(String orderSns) {
|
|
|
+
|
|
|
+ if (org.springframework.util.StringUtils.isEmpty(orderSns)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ List<String> orderIdStrList = new ArrayList<>();
|
|
|
+ if (orderSns.contains(",")) {
|
|
|
+ String[] split = orderSns.split(",");
|
|
|
+ orderIdStrList.addAll(Arrays.asList(split));
|
|
|
+ } else {
|
|
|
+ orderIdStrList.add(orderSns);
|
|
|
+ }
|
|
|
+ List<Integer> orderIdList = orderIdStrList.parallelStream().map(Integer::valueOf).collect(Collectors.toList());
|
|
|
+ // 查询订单详细信息
|
|
|
+ List<OrderGoodsRestoreVo> orderGoodsRestoreVos = orderGoodsService.queryListByOrderIds(orderIdList);
|
|
|
+
|
|
|
+ // 需要更新门店商品库存(mall_product_store_rela)和园区库存(mall_goods)
|
|
|
+ // 园区库存, 无门店概念
|
|
|
+ List<GoodsEntity> goodsEntities = new ArrayList<>();
|
|
|
+ // 门店商品库存
|
|
|
+ List<ProductStoreRelaEntity> productStoreRelaEntities = new ArrayList<>();
|
|
|
+ // 组装数据
|
|
|
+ orderGoodsRestoreVos.forEach(orderGoodsRestoreVo -> {
|
|
|
+ goodsEntities.add(wrapGoods(orderGoodsRestoreVo));
|
|
|
+ productStoreRelaEntities.add(wrapProductStoreRela(orderGoodsRestoreVo));
|
|
|
+ });
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 还原园区库存
|
|
|
+ goodsService.restoreBatch(goodsEntities);
|
|
|
+ // 还原门店库存
|
|
|
+ productStoreRelaService.restoreBatch(productStoreRelaEntities);
|
|
|
+ } catch (Exception e) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装成ProductStoreRelaEntity, 还原操作
|
|
|
+ * @param orderGoodsRestoreVo 订单详细数据
|
|
|
+ * @return 门店库存
|
|
|
+ */
|
|
|
+ private ProductStoreRelaEntity wrapProductStoreRela(OrderGoodsRestoreVo orderGoodsRestoreVo) {
|
|
|
+ ProductStoreRelaEntity productStoreRelaEntity = new ProductStoreRelaEntity();
|
|
|
+ productStoreRelaEntity.setStoreId(orderGoodsRestoreVo.getStoreId().longValue());
|
|
|
+ productStoreRelaEntity.setSku(orderGoodsRestoreVo.getSku());
|
|
|
+ productStoreRelaEntity.setStockNum(orderGoodsRestoreVo.getNumber());
|
|
|
+ return productStoreRelaEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装成GoodsEntity, 还原操作
|
|
|
+ * @param orderGoodsRestoreVo 订单详细数据
|
|
|
+ * @return 库存
|
|
|
+ */
|
|
|
+ private GoodsEntity wrapGoods(OrderGoodsRestoreVo orderGoodsRestoreVo) {
|
|
|
+ GoodsEntity goodsEntity = new GoodsEntity();
|
|
|
+ goodsEntity.setGoodsNumber(orderGoodsRestoreVo.getNumber());
|
|
|
+ goodsEntity.setSku(orderGoodsRestoreVo.getSku());
|
|
|
+ return goodsEntity;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<OrderEntity> queryPickUpCodeList(Map<String, Object> map) {
|
|
|
return orderDao.queryPickUpCodeList(map);
|