|
|
@@ -839,8 +839,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
item.setSendNumHave(item.getSendNum());
|
|
|
}
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
- stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
+ BigDecimal inventoryAmount = item.getSendNum().multiply(stockOne.getInventoryCostPrice());
|
|
|
+ BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
|
|
|
+ stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
}
|
|
|
pjStockDescArrayList.add(stockOne);
|
|
|
@@ -902,13 +904,14 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
} else {
|
|
|
throw new RuntimeException("出库明细不能为空");
|
|
|
}
|
|
|
+ orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
if (ObjectUtil.isNotEmpty(order)) {
|
|
|
List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrderItems::getIsDeleted, 0)
|
|
|
.eq(PjOrderItems::getPid, order.getId()));
|
|
|
- if (!orderItemsList.isEmpty()){
|
|
|
+ if (!orderItemsList.isEmpty()) {
|
|
|
if ("已收货".equals(order.getStatus()) || "退款请核".equals(order.getStatus()) || "已取消".equals(order.getStatus())) {
|
|
|
throw new RuntimeException("单据已收货或申请售后中,操作失败");
|
|
|
}
|
|
|
@@ -1213,7 +1216,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
}
|
|
|
//生成出库工单历史记录
|
|
|
saveHistory(ship.getId(), OrderTypeEnum.OURTBOUND.getType());
|
|
|
- orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
shipItemsService.saveOrUpdateBatch(shipItemsList);
|
|
|
return R.data(ship);
|
|
|
}
|
|
|
@@ -1333,8 +1335,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
// item.setSendNumHave(new BigDecimal("0"));
|
|
|
// item.setSendNumFinancing(new BigDecimal("0"));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
- stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
+ BigDecimal inventoryAmount = item.getSendNum().multiply(stockOne.getInventoryCostPrice());
|
|
|
+ BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
|
|
|
+ stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(inventoryAmount));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(rebateInventoryAmount));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
pjStockDescArrayList.add(stockOne);
|
|
|
/*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
@@ -1389,7 +1393,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrderItems::getIsDeleted, 0)
|
|
|
.eq(PjOrderItems::getPid, order.getId()));
|
|
|
- if (!orderItemsList.isEmpty()){
|
|
|
+ if (!orderItemsList.isEmpty()) {
|
|
|
//发货数量和
|
|
|
BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
@@ -1684,15 +1688,18 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
List<Long> ordIds = orderList.stream().map(PjOrder::getId).collect(Collectors.toList());
|
|
|
List<PjOrderItems> orderItemsList = new ArrayList<>();
|
|
|
if (!ordIds.isEmpty()) {
|
|
|
- orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
- .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
- .eq(PjOrderItems::getBizType, "RZCG")
|
|
|
- .in(PjOrderItems::getPid, ordIds)
|
|
|
- .in(PjOrderItems::getId, financingShipItemDtoList.stream().map(FinancingShipItemDto::getId).filter(Objects::nonNull)
|
|
|
- .distinct().collect(Collectors.toList()))
|
|
|
- .orderByAsc(PjOrderItems::getCreateTime)
|
|
|
- );
|
|
|
+ List<Long> ids = financingShipItemDtoList.stream().map(FinancingShipItemDto::getId).filter(Objects::nonNull)
|
|
|
+ .distinct().collect(Collectors.toList());
|
|
|
+ if (!ids.isEmpty()) {
|
|
|
+ orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
+ .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
+ .eq(PjOrderItems::getBizType, "RZCG")
|
|
|
+ .in(PjOrderItems::getPid, ordIds)
|
|
|
+ .in(PjOrderItems::getId, ids)
|
|
|
+ .orderByAsc(PjOrderItems::getCreateTime)
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
BigDecimal amount = new BigDecimal("0.00");
|
|
|
for (PjShipItems item : itemsList) {
|
|
|
@@ -2241,13 +2248,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockDesc.setStoreInventory(item.getSendNum());
|
|
|
stockDesc.setInventoryAmount(item.getSendNum().multiply(item.getPrice()));
|
|
|
stockDesc.setRebateInventoryAmount(item.getSendNum().multiply(item.getRebatePrice()));
|
|
|
- if (stockDesc.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
- stockDesc.setInventoryCostPrice(stockDesc.getInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- stockDesc.setRebatePrice(stockDesc.getRebateInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- } else {
|
|
|
- stockDesc.setInventoryCostPrice(item.getPrice());
|
|
|
- stockDesc.setRebatePrice(item.getRebatePrice());
|
|
|
- }
|
|
|
+ stockDesc.setInventoryCostPrice(item.getPrice());
|
|
|
+ stockDesc.setRebatePrice(item.getRebatePrice());
|
|
|
pjStockDescArrayListSave.add(stockDesc);
|
|
|
} else {
|
|
|
stockDesc.setId(stockOne.getId());
|
|
|
@@ -2856,9 +2858,11 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
item.setSendNumHave(new BigDecimal("0"));
|
|
|
}
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(item.getPrice())));
|
|
|
- stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(item.getSendNum().multiply(item.getRebatePrice())));
|
|
|
- /*if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0 || new BigDecimal("0.00").compareTo(stockOne.getBalanceQuantity()) == 0) {
|
|
|
+ BigDecimal inventoryAmount = item.getSendNum().multiply(item.getPrice());
|
|
|
+ BigDecimal rebateInventoryAmount = item.getSendNum().multiply(item.getRebatePrice());
|
|
|
+ stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
|
|
|
+ if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0 || new BigDecimal("0.00").compareTo(stockOne.getBalanceQuantity()) == 0) {
|
|
|
stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
@@ -2867,7 +2871,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOne.setRebatePrice(new BigDecimal("0.00"));
|
|
|
} else {
|
|
|
stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }*/
|
|
|
+ }
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
/*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
if (!res.isSuccess()) {
|
|
|
@@ -3407,6 +3411,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOneC.setStoreInventory(stockOneC.getBalanceQuantity());
|
|
|
stockOneC.setInventoryAmount(stockOneC.getInventoryAmount().subtract(orderItems.getGoodsNum()
|
|
|
.multiply(stockOneC.getInventoryCostPrice())));
|
|
|
+ stockOneC.setRebateInventoryAmount(stockOneC.getRebateInventoryAmount().subtract(orderItems.getGoodsNum()
|
|
|
+ .multiply(stockOneC.getRebatePrice())));
|
|
|
stockOneC.setVersion(stockOneC.getVersion());
|
|
|
pjStockDescArrayList.add(stockOneC);
|
|
|
} else {
|
|
|
@@ -3439,6 +3445,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOneR.setInventoryAmount(stockOneR.getInventoryAmount().add(orderItems.getGoodsNum()
|
|
|
.multiply(stockOneC.getInventoryCostPrice())));
|
|
|
stockOneR.setInventoryCostPrice(stockOneR.getInventoryAmount().divide(stockOneR.getBalanceQuantity(), 2, RoundingMode.HALF_UP));
|
|
|
+ stockOneR.setRebateInventoryAmount(stockOneR.getRebateInventoryAmount().add(orderItems.getGoodsNum()
|
|
|
+ .multiply(stockOneC.getRebatePrice())));
|
|
|
+ stockOneR.setRebatePrice(stockOneR.getRebateInventoryAmount().divide(stockOneR.getBalanceQuantity(), 2, RoundingMode.HALF_UP));
|
|
|
stockOneR.setVersion(stockOneR.getVersion());
|
|
|
pjStockDescList.add(stockOneR);
|
|
|
} else {
|
|
|
@@ -3465,6 +3474,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockDesc.setStoreInventory(orderItems.getGoodsNum());
|
|
|
stockDesc.setInventoryAmount(orderItems.getGoodsNum().multiply(stockOneC.getInventoryCostPrice()));
|
|
|
stockDesc.setInventoryCostPrice(stockOneC.getInventoryCostPrice());
|
|
|
+ stockDesc.setRebatePrice(stockOneC.getRebatePrice());
|
|
|
+ stockDesc.setRebateInventoryAmount(orderItems.getGoodsNum().multiply(stockOneC.getRebatePrice()));
|
|
|
stockDesc.setSalesCompanyId(detail.getSalesCompanyId());
|
|
|
stockDesc.setSalesCompanyName(detail.getSalesCompanyName());
|
|
|
stockDesc.setDot(orderItems.getDot());
|
|
|
@@ -3542,6 +3553,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOneC.setStoreInventory(stockOneC.getBalanceQuantity());
|
|
|
stockOneC.setInventoryAmount(stockOneC.getInventoryAmount().add(orderItems.getGoodsNum()
|
|
|
.multiply(stockOneC.getInventoryCostPrice())));
|
|
|
+ stockOneC.setRebateInventoryAmount(stockOneC.getRebateInventoryAmount().add(orderItems.getGoodsNum()
|
|
|
+ .multiply(stockOneC.getRebatePrice())));
|
|
|
stockOneC.setVersion(stockOneC.getVersion());
|
|
|
pjStockDescArrayList.add(stockOneC);
|
|
|
} else {
|
|
|
@@ -3589,6 +3602,14 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
} else {
|
|
|
stockOneR.setInventoryCostPrice(stockOneR.getInventoryAmount().divide(stockOneR.getBalanceQuantity(), 2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
+ stockOneR.setRebateInventoryAmount(stockOneR.getRebateInventoryAmount().subtract(orderItems.getGoodsNum()
|
|
|
+ .multiply(stockOneR.getRebatePrice())));
|
|
|
+ if (stockOneR.getRebateInventoryAmount().compareTo(new BigDecimal("0.00")) == 0 ||
|
|
|
+ stockOneR.getBalanceQuantity().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
+ stockOneR.setRebatePrice(new BigDecimal("0.00"));
|
|
|
+ } else {
|
|
|
+ stockOneR.setRebatePrice(stockOneR.getRebateInventoryAmount().divide(stockOneR.getBalanceQuantity(), 2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
stockOneR.setDot("");
|
|
|
stockOneR.setVersion(stockOneR.getVersion());
|
|
|
pjStockDescArrayList.add(stockOneR);
|
|
|
@@ -4008,17 +4029,15 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
item.setSendNumHave(item.getSendNum());
|
|
|
}
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
- stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
+ BigDecimal inventoryAmount = item.getSendNum().multiply(item.getPrice());
|
|
|
+ BigDecimal rebateInventoryAmount = item.getSendNum().multiply(item.getRebatePrice());
|
|
|
+ stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
if (stockOne.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
- /*R res = iStockDescService.updateByIdNew(stockOne);
|
|
|
- if (!res.isSuccess()) {
|
|
|
- throw new RuntimeException(res.getMsg());
|
|
|
- }*/
|
|
|
pjStockDescArrayList.add(stockOne);
|
|
|
} else {
|
|
|
System.err.println("商品:" + goodsDesc.getCname());
|
|
|
@@ -4452,8 +4471,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
item.setSendNumHave(new BigDecimal("0"));
|
|
|
}
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
- stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(item.getSendNum().multiply(stockOne.getRebatePrice())));
|
|
|
+ BigDecimal inventoryAmount = item.getSendNum().multiply(item.getPrice());
|
|
|
+ BigDecimal rebateInventoryAmount = item.getSendNum().multiply(item.getRebatePrice());
|
|
|
+ stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(inventoryAmount));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(rebateInventoryAmount));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
if (stockOne.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
@@ -5029,7 +5050,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockDesc.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
stockDesc.setBalanceQuantityHave(stockOne.getBalanceQuantityHave().add(item.getSendNum()));
|
|
|
stockDesc.setStoreInventory(stockDesc.getBalanceQuantity());
|
|
|
- stockDesc.setInventoryAmount(stockOne.getInventoryAmount() == null ? new BigDecimal("0.00") : stockOne.getInventoryAmount().add(item.getCostprie()));
|
|
|
+ BigDecimal inventoryAmount = item.getSendNum().multiply(stockOne.getInventoryCostPrice());
|
|
|
+ BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
|
|
|
+ stockDesc.setInventoryAmount(stockOne.getInventoryAmount().add(inventoryAmount));
|
|
|
+ stockDesc.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(rebateInventoryAmount));
|
|
|
stockDesc.setVersion(stockOne.getVersion());
|
|
|
pjStockDescArrayListUpdate.add(stockDesc);
|
|
|
}
|
|
|
@@ -5331,18 +5355,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().subtract(item.getSendNum()));
|
|
|
stockOne.setBalanceQuantityHave(stockOne.getBalanceQuantityHave().subtract(item.getSendNumHave()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(item.getPrice())));
|
|
|
- stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(item.getSendNum().multiply(item.getRebatePrice())));
|
|
|
- if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0 && new BigDecimal("0.00").compareTo(stockOne.getBalanceQuantity()) == 0) {
|
|
|
- stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
|
|
|
- } else {
|
|
|
- stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
- if (new BigDecimal("0.00").compareTo(stockOne.getRebateInventoryAmount()) == 0 && new BigDecimal("0.00").compareTo(stockOne.getBalanceQuantity()) == 0) {
|
|
|
- stockOne.setRebatePrice(new BigDecimal("0.00"));
|
|
|
- } else {
|
|
|
- stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- }
|
|
|
+ BigDecimal inventoryAmount = item.getSendNum().multiply(stockOne.getInventoryCostPrice());
|
|
|
+ BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
|
|
|
+ stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
|
|
|
+ stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
pjStockDescArrayList.add(stockOne);
|
|
|
} else {
|