|
|
@@ -84,7 +84,10 @@ import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.function.Predicate;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -773,7 +776,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
List<DeliveryItems> deliveryItems = deliveryItemsMapper.selectList(deliveryItemsLambdaQueryWrapper);
|
|
|
|
|
|
select.setDeliveryItemsList(deliveryItems);
|
|
|
-
|
|
|
+ delivery.setDeliveryItemsList(deliveryItems);
|
|
|
String corpName = null;
|
|
|
String corpNumber = null;
|
|
|
String orderNo = select.getOrderNo();
|
|
|
@@ -830,10 +833,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
List<StockGoods> finalStockGoodsList1 = stockGoodsList;
|
|
|
List<StockGoods> stockGoodsList2 = new ArrayList<>();
|
|
|
- //去重
|
|
|
- List<Long> list = r.getData().stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
//获取去重之后数据
|
|
|
- List<OrderItems> reducelList = r.getData().stream().filter(e -> list.contains(e.getItemId())).collect(Collectors.toList());
|
|
|
+ List<OrderItems> reducelList = r.getData().stream().filter(distinctByKey(OrderItems::getItemId)).collect(Collectors.toList());
|
|
|
reducelList.forEach(e -> {
|
|
|
// 原单据的订货数量
|
|
|
BigDecimal orderQuantity = r.getData().stream().filter(i -> i.getItemId().equals(e.getItemId()))
|
|
|
@@ -884,10 +886,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
List<StockGoods> finalStockGoodsList = stockGoodsClient.selectStockGoodsAll();
|
|
|
List<StockGoods> stockGoodsList1 = new ArrayList<>();
|
|
|
List<StockGoodsLog> stockGoodsLogList = new ArrayList<>();
|
|
|
- //去重
|
|
|
- List<Long> listDelivery = deliveryItemsList.stream().map(DeliveryItems::getItemId).distinct().collect(Collectors.toList());
|
|
|
//获取去重之后数据
|
|
|
- List<DeliveryItems> reducelList = deliveryItemsList.stream().filter(e -> listDelivery.contains(e.getItemId())).collect(Collectors.toList());
|
|
|
+ List<DeliveryItems> reducelList = deliveryItemsList.stream().filter(distinctByKey(DeliveryItems::getItemId)).collect(Collectors.toList());
|
|
|
Date date = new Date();
|
|
|
reducelList.forEach(e -> {
|
|
|
// 原单据的订货数量
|
|
|
@@ -1011,11 +1011,11 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
}
|
|
|
//修改库存单
|
|
|
else {
|
|
|
+ stock.setVersion(stock.getVersion());
|
|
|
StockGoods receiving = iDeliveryItemsService.receiving(select.getTradeType(), stock, e);
|
|
|
//更新收货单明细库存
|
|
|
e.setInventoryNumber(receiving.getSurplusRouteQuantity());
|
|
|
e.setInWeight(receiving.getInWeight());
|
|
|
- receiving.setVersion(stock.getVersion());
|
|
|
stockGoodsList1.add(receiving);
|
|
|
stockGoodsLog.setBalanceQuantity(receiving.getBalanceQuantity());
|
|
|
stockGoodsLog.setSurplusRouteQuantity(receiving.getSurplusRouteQuantity());
|
|
|
@@ -1038,11 +1038,11 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
}
|
|
|
//修改库存单
|
|
|
else {
|
|
|
+ stock.setVersion(stock.getVersion());
|
|
|
StockGoods receiving = iDeliveryItemsService.receiving(select.getTradeType(), stock, e);
|
|
|
//更新收货单明细库存
|
|
|
e.setInventoryNumber(receiving.getSurplusRouteQuantity());
|
|
|
e.setInWeight(receiving.getInWeight());
|
|
|
- receiving.setVersion(stock.getVersion());
|
|
|
stockGoodsList1.add(receiving);
|
|
|
stockGoodsLog.setBalanceQuantity(receiving.getBalanceQuantity());
|
|
|
stockGoodsLog.setSurplusRouteQuantity(receiving.getSurplusRouteQuantity());
|
|
|
@@ -1053,8 +1053,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
if (stock == null) {
|
|
|
throw new SecurityException("更新库存失败,未找到库存");
|
|
|
} else {
|
|
|
+ stock.setVersion(stock.getVersion());
|
|
|
StockGoods receiving = iDeliveryItemsService.receiving(select.getTradeType(), stock, e);
|
|
|
- receiving.setVersion(stock.getVersion());
|
|
|
stockGoodsList1.add(receiving);
|
|
|
stockGoodsLog.setBalanceQuantity(receiving.getBalanceQuantity());
|
|
|
stockGoodsLog.setSurplusRouteQuantity(receiving.getSurplusRouteQuantity());
|
|
|
@@ -1063,26 +1063,27 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ });
|
|
|
+ R res = stockGoodsClient.saveOrUpdateBatchList(stockGoodsList1);
|
|
|
+ if (!res.isSuccess()) {
|
|
|
+ throw new RuntimeException(res.getMsg());
|
|
|
+ }
|
|
|
+ stockGoodsClient.saveOrUpdateBatchListLog(stockGoodsLogList);
|
|
|
+ delivery.getDeliveryItemsList().forEach(e -> {
|
|
|
//更新item已发数量
|
|
|
- R r = iOrderItemsClient.updateActualQuantity(e.getSrcId(), inventoryNumber, 1);
|
|
|
+ R r = iOrderItemsClient.updateActualQuantity(e.getSrcId(), e.getActualQuantity(), 1);
|
|
|
if (!r.isSuccess()) {
|
|
|
throw new SecurityException("操作已发数量失败:" + r.getMsg());
|
|
|
}
|
|
|
if ("JK".equals(select.getTradeType())) {
|
|
|
//更新item已收发票重量
|
|
|
- R weightR = iOrderItemsClient.updateActualWeight(e.getSrcId(), invoiceWeight, 1);
|
|
|
+ R weightR = iOrderItemsClient.updateActualWeight(e.getSrcId(), e.getInvoiceWeight(), 1);
|
|
|
if (!weightR.isSuccess()) {
|
|
|
throw new SecurityException("操作发票重量失败:" + weightR.getMsg());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
});
|
|
|
- R res = stockGoodsClient.saveOrUpdateBatchList(stockGoodsList1);
|
|
|
- if (!res.isSuccess()) {
|
|
|
- throw new RuntimeException(res.getMsg());
|
|
|
- }
|
|
|
- stockGoodsClient.saveOrUpdateBatchListLog(stockGoodsLogList);
|
|
|
//更新库存内容
|
|
|
iDeliveryItemsService.updateBatchById(deliveryItemsList);
|
|
|
if ("681169".equals(AuthUtil.getTenantId())) {
|
|
|
@@ -1308,7 +1309,13 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
return select;
|
|
|
}
|
|
|
|
|
|
- public void voucher(String brand, Delivery select, String accountName, String copsName, String corpNumber, String warehouse, String acoount, String orderNo) {
|
|
|
+ private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
|
|
|
+ Set<Object> seen = ConcurrentHashMap.newKeySet();
|
|
|
+ return t -> seen.add(keyExtractor.apply(t));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void voucher(String brand, Delivery select, String accountName, String copsName, String corpNumber, String warehouse, String acoount, String orderNo) {
|
|
|
try {
|
|
|
//测试账套-工厂发货生成凭证
|
|
|
Delivery delivery = this.testTakeGoodsSaveVoucher(brand, select, accountName, copsName, corpNumber, warehouse, acoount, orderNo);
|