|
|
@@ -254,109 +254,107 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
List<TireStockDesc> pjStockDescArrayList = new ArrayList<>();
|
|
|
if (CollectionUtils.isNotEmpty(shipVO.getShipItemsList())) {
|
|
|
List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
|
|
|
- if ("内部销售".equals(ship.getBsType())) {
|
|
|
- // 保存订单明细
|
|
|
- List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
- .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
- .eq(PjOrderItems::getPid, ship.getOrdId()));
|
|
|
- List<Long> goodIds = shipVO.getShipItemsList().stream().map(PjShipItems::getGoodsId).distinct().collect(Collectors.toList());
|
|
|
- LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapperGoods = new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
- .eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
- .in(PjGoodsDesc::getId, goodIds);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- lambdaQueryWrapperGoods.eq(PjGoodsDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
+ // 保存订单明细
|
|
|
+ List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
+ .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
+ .eq(PjOrderItems::getPid, ship.getOrdId()));
|
|
|
+ List<Long> goodIds = shipVO.getShipItemsList().stream().map(PjShipItems::getGoodsId).distinct().collect(Collectors.toList());
|
|
|
+ LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapperGoods = new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
+ .eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
+ .in(PjGoodsDesc::getId, goodIds);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ lambdaQueryWrapperGoods.eq(PjGoodsDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
+ }
|
|
|
+ List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(lambdaQueryWrapperGoods);
|
|
|
+ //修改库存账
|
|
|
+ LambdaQueryWrapper<TireStockDesc> stockLambdaQueryWrapperTireStock = new LambdaQueryWrapper<>();
|
|
|
+ stockLambdaQueryWrapperTireStock
|
|
|
+ .eq(TireStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(TireStockDesc::getIsDeleted, 0)
|
|
|
+ .in(TireStockDesc::getGoodsId, goodIds);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ stockLambdaQueryWrapperTireStock.eq(TireStockDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
+ }
|
|
|
+ List<TireStockDesc> pjStockDescList = iStockDescService.list(stockLambdaQueryWrapperTireStock);
|
|
|
+ StringBuilder msg = new StringBuilder();
|
|
|
+ for (PjShipItems item : shipVO.getShipItemsList()) {
|
|
|
+ PjGoodsDesc goodsDesc = pjGoodsDescList.stream().filter(e -> e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
|
|
|
+ if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
+ throw new RuntimeException("商品数据异常");
|
|
|
}
|
|
|
- List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(lambdaQueryWrapperGoods);
|
|
|
- //修改库存账
|
|
|
- LambdaQueryWrapper<TireStockDesc> stockLambdaQueryWrapperTireStock = new LambdaQueryWrapper<>();
|
|
|
- stockLambdaQueryWrapperTireStock
|
|
|
- .eq(TireStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(TireStockDesc::getIsDeleted, 0)
|
|
|
- .in(TireStockDesc::getGoodsId, goodIds);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- stockLambdaQueryWrapperTireStock.eq(TireStockDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
- }
|
|
|
- List<TireStockDesc> pjStockDescList = iStockDescService.list(stockLambdaQueryWrapperTireStock);
|
|
|
- StringBuilder msg = new StringBuilder();
|
|
|
- for (PjShipItems item : shipVO.getShipItemsList()) {
|
|
|
- PjGoodsDesc goodsDesc = pjGoodsDescList.stream().filter(e -> e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
- throw new RuntimeException("商品数据异常");
|
|
|
- }
|
|
|
- if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
|
|
|
- throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
|
|
|
- }
|
|
|
- //管理批次号
|
|
|
- TireStockDesc stockOne;
|
|
|
- if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && "1".equals(goodsDesc.getWhether())) {
|
|
|
- stockOne = pjStockDescList.stream()
|
|
|
- .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
- && e.getDot().equals(item.getDot()) && e.getReservoirAreaId().equals(item.getReservoirAreaId()))
|
|
|
- .findFirst().orElse(null);
|
|
|
- } else {
|
|
|
- stockOne = pjStockDescList.stream()
|
|
|
- .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
- && ObjectUtils.isNull(e.getDot()) && e.getReservoirAreaId().equals(item.getReservoirAreaId()))
|
|
|
- .findFirst().orElse(null);
|
|
|
+ if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
|
|
|
+ throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
|
|
|
+ }
|
|
|
+ //管理批次号
|
|
|
+ TireStockDesc stockOne;
|
|
|
+ if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && "1".equals(goodsDesc.getWhether())) {
|
|
|
+ stockOne = pjStockDescList.stream()
|
|
|
+ .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
+ && e.getDot().equals(item.getDot()) && e.getReservoirAreaId().equals(item.getReservoirAreaId()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ } else {
|
|
|
+ stockOne = pjStockDescList.stream()
|
|
|
+ .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
+ && ObjectUtils.isNull(e.getDot()) && e.getReservoirAreaId().equals(item.getReservoirAreaId()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ }
|
|
|
+ if (stockOne != null) {
|
|
|
+ if (stockOne.getBalanceQuantity().compareTo(item.getSendNum()) < 0) {
|
|
|
+ throw new RuntimeException("库区:" + item.getReservoirArea() + "中库存小于实际出库数量");
|
|
|
}
|
|
|
- if (stockOne != null) {
|
|
|
- if (stockOne.getBalanceQuantity().compareTo(item.getSendNum()) < 0) {
|
|
|
- throw new RuntimeException("库区:" + item.getReservoirArea() + "中库存小于实际出库数量");
|
|
|
- }
|
|
|
- stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().subtract(item.getSendNum()));
|
|
|
- stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- 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());
|
|
|
- PjOrderItems orderItems = orderItemsList.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
- if (orderItems != null) {
|
|
|
- if (orderItems.getGoodsNum().compareTo(orderItems.getSendNum().add(item.getSendNum())) < 0) {
|
|
|
- throw new RuntimeException(orderItems.getGoodsName() + "剩余应发货数量" + orderItems.getGoodsNum().subtract(orderItems.getSendNum()));
|
|
|
- } else {
|
|
|
- orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
|
|
|
- }
|
|
|
- orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
|
|
|
- if (ObjectUtils.isNull(orderItems.getCostprie()) || new BigDecimal("0.00").compareTo(orderItems.getCostprie()) == 0) {
|
|
|
- orderItems.setCostpriePrice(stockOne.getInventoryCostPrice());
|
|
|
- orderItems.setCostprie(stockOne.getInventoryCostPrice().multiply(orderItems.getGoodsNum()));
|
|
|
- orderItems.setGrossProfit(orderItems.getSubTotalMoney().subtract(orderItems.getCostprie()));
|
|
|
- orderItems.setProfit(orderItems.getSubTotalMoney().subtract(orderItems.getCostprie()));
|
|
|
- }
|
|
|
- if (ObjectUtils.isNull(orderItems.getRebateCostprie()) || new BigDecimal("0.00").compareTo(orderItems.getRebateCostprie()) == 0) {
|
|
|
- orderItems.setRebatePrice(stockOne.getRebatePrice());
|
|
|
- orderItems.setRebateCostprie(stockOne.getRebatePrice().multiply(orderItems.getGoodsNum()));
|
|
|
- orderItems.setRebateProfit(orderItems.getSubTotalMoney().subtract(orderItems.getRebateCostprie()));
|
|
|
- }
|
|
|
- pjOrderItemsList.add(orderItems);
|
|
|
+ stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().subtract(item.getSendNum()));
|
|
|
+ stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
+ 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());
|
|
|
+ PjOrderItems orderItems = orderItemsList.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
+ if (orderItems != null) {
|
|
|
+ if (orderItems.getGoodsNum().compareTo(orderItems.getSendNum().add(item.getSendNum())) < 0) {
|
|
|
+ throw new RuntimeException(orderItems.getGoodsName() + "剩余应发货数量" + orderItems.getGoodsNum().subtract(orderItems.getSendNum()));
|
|
|
} else {
|
|
|
- throw new RuntimeException("数据异常请联系管理员");
|
|
|
+ orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
|
|
|
}
|
|
|
- item.setCostprie(item.getSendNum().multiply(stockOne.getInventoryCostPrice()));
|
|
|
- item.setCostpriePrice(stockOne.getInventoryCostPrice());
|
|
|
- item.setProfit(item.getSubTotalMoney().subtract(orderItems.getCostprie()));
|
|
|
- item.setRebateCostprie(item.getSendNum().multiply(stockOne.getRebatePrice()));
|
|
|
- item.setRebatePrice(stockOne.getRebatePrice());
|
|
|
- item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
|
|
|
+ orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
|
|
|
+ if (ObjectUtils.isNull(orderItems.getCostprie()) || new BigDecimal("0.00").compareTo(orderItems.getCostprie()) == 0) {
|
|
|
+ orderItems.setCostpriePrice(stockOne.getInventoryCostPrice());
|
|
|
+ orderItems.setCostprie(stockOne.getInventoryCostPrice().multiply(orderItems.getGoodsNum()));
|
|
|
+ orderItems.setGrossProfit(orderItems.getSubTotalMoney().subtract(orderItems.getCostprie()));
|
|
|
+ orderItems.setProfit(orderItems.getSubTotalMoney().subtract(orderItems.getCostprie()));
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(orderItems.getRebateCostprie()) || new BigDecimal("0.00").compareTo(orderItems.getRebateCostprie()) == 0) {
|
|
|
+ orderItems.setRebatePrice(stockOne.getRebatePrice());
|
|
|
+ orderItems.setRebateCostprie(stockOne.getRebatePrice().multiply(orderItems.getGoodsNum()));
|
|
|
+ orderItems.setRebateProfit(orderItems.getSubTotalMoney().subtract(orderItems.getRebateCostprie()));
|
|
|
+ }
|
|
|
+ pjOrderItemsList.add(orderItems);
|
|
|
} else {
|
|
|
- msg.append(goodsDesc.getCname()).append(",");
|
|
|
+ throw new RuntimeException("数据异常请联系管理员");
|
|
|
}
|
|
|
- pjStockDescArrayList.add(stockOne);
|
|
|
- }
|
|
|
- if (msg.length() > 0) {
|
|
|
- throw new RuntimeException("商品:" + msg + "未查到库存账");
|
|
|
- }
|
|
|
- R res = iStockDescService.updateBatchByIdNew(pjStockDescArrayList);
|
|
|
- if (!res.isSuccess()) {
|
|
|
- throw new RuntimeException(res.getMsg());
|
|
|
+ item.setCostprie(item.getSendNum().multiply(stockOne.getInventoryCostPrice()));
|
|
|
+ item.setCostpriePrice(stockOne.getInventoryCostPrice());
|
|
|
+ item.setProfit(item.getSubTotalMoney().subtract(orderItems.getCostprie()));
|
|
|
+ item.setRebateCostprie(item.getSendNum().multiply(stockOne.getRebatePrice()));
|
|
|
+ item.setRebatePrice(stockOne.getRebatePrice());
|
|
|
+ item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
|
|
|
+ } else {
|
|
|
+ msg.append(goodsDesc.getCname()).append(",");
|
|
|
}
|
|
|
- orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
- shipItemsService.updateBatchById(shipVO.getShipItemsList());
|
|
|
- ship.setNumberRows(shipVO.getShipItemsList().size());
|
|
|
+ pjStockDescArrayList.add(stockOne);
|
|
|
+ }
|
|
|
+ if (msg.length() > 0) {
|
|
|
+ throw new RuntimeException("商品:" + msg + "未查到库存账");
|
|
|
}
|
|
|
+ R res = iStockDescService.updateBatchByIdNew(pjStockDescArrayList);
|
|
|
+ if (!res.isSuccess()) {
|
|
|
+ throw new RuntimeException(res.getMsg());
|
|
|
+ }
|
|
|
+ orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
+ shipItemsService.updateBatchById(shipVO.getShipItemsList());
|
|
|
+ ship.setNumberRows(shipVO.getShipItemsList().size());
|
|
|
PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
if (ObjectUtil.isNotEmpty(order)) {
|
|
|
if ("已收货".equals(order.getStatus()) || "申请退货".equals(order.getStatus()) || "已取消".equals(order.getStatus())) {
|
|
|
@@ -405,100 +403,98 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
// 保存订单明细
|
|
|
List<TireStockDesc> pjStockDescArrayList = new ArrayList<>();
|
|
|
if (CollectionUtils.isNotEmpty(shipVO.getShipItemsList())) {
|
|
|
- if ("内部销售".equals(ship.getBsType())) {
|
|
|
- List<Long> goodIds = shipVO.getShipItemsList().stream().map(PjShipItems::getGoodsId).distinct().collect(Collectors.toList());
|
|
|
- LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapperGoods = new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
- .eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
- .in(PjGoodsDesc::getId, goodIds);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- lambdaQueryWrapperGoods.eq(PjGoodsDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
+ List<Long> goodIds = shipVO.getShipItemsList().stream().map(PjShipItems::getGoodsId).distinct().collect(Collectors.toList());
|
|
|
+ LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapperGoods = new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
+ .eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
+ .in(PjGoodsDesc::getId, goodIds);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ lambdaQueryWrapperGoods.eq(PjGoodsDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
+ }
|
|
|
+ List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(lambdaQueryWrapperGoods);
|
|
|
+ //修改库存账
|
|
|
+ LambdaQueryWrapper<TireStockDesc> stockLambdaQueryWrapperTireStock = new LambdaQueryWrapper<>();
|
|
|
+ stockLambdaQueryWrapperTireStock
|
|
|
+ .eq(TireStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(TireStockDesc::getIsDeleted, 0)
|
|
|
+ .in(TireStockDesc::getGoodsId, goodIds);
|
|
|
+ if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
+ stockLambdaQueryWrapperTireStock.eq(TireStockDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
+ }
|
|
|
+ List<TireStockDesc> pjStockDescList = iStockDescService.list(stockLambdaQueryWrapperTireStock);
|
|
|
+ // 保存订单明细
|
|
|
+ List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
|
|
|
+ List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
+ .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
+ .eq(PjOrderItems::getPid, ship.getOrdId()));
|
|
|
+ for (PjShipItems item : shipVO.getShipItemsList()) {
|
|
|
+ //获得商品
|
|
|
+ PjGoodsDesc goodsDesc = pjGoodsDescList.stream().filter(e -> e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
|
|
|
+ if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
+ throw new RuntimeException("商品数据异常");
|
|
|
}
|
|
|
- List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(lambdaQueryWrapperGoods);
|
|
|
- //修改库存账
|
|
|
- LambdaQueryWrapper<TireStockDesc> stockLambdaQueryWrapperTireStock = new LambdaQueryWrapper<>();
|
|
|
- stockLambdaQueryWrapperTireStock
|
|
|
- .eq(TireStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(TireStockDesc::getIsDeleted, 0)
|
|
|
- .in(TireStockDesc::getGoodsId, goodIds);
|
|
|
- if (!AuthUtil.getUserRole().contains("admin")) {
|
|
|
- stockLambdaQueryWrapperTireStock.eq(TireStockDesc::getCreateDept, AuthUtil.getDeptId());
|
|
|
- }
|
|
|
- List<TireStockDesc> pjStockDescList = iStockDescService.list(stockLambdaQueryWrapperTireStock);
|
|
|
- // 保存订单明细
|
|
|
- List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
|
|
|
- List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
- .eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjOrderItems::getIsDeleted, 0)
|
|
|
- .eq(PjOrderItems::getPid, ship.getOrdId()));
|
|
|
- for (PjShipItems item : shipVO.getShipItemsList()) {
|
|
|
- //获得商品
|
|
|
- PjGoodsDesc goodsDesc = pjGoodsDescList.stream().filter(e -> e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
- throw new RuntimeException("商品数据异常");
|
|
|
- }
|
|
|
- //管理批次号
|
|
|
- TireStockDesc stockOne;
|
|
|
- if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && "1".equals(goodsDesc.getWhether())) {
|
|
|
- stockOne = pjStockDescList.stream()
|
|
|
- .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
- && e.getDot().equals(item.getDot())).findFirst().orElse(null);
|
|
|
- } else {
|
|
|
- stockOne = pjStockDescList.stream()
|
|
|
- .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
- && ObjectUtils.isNull(e.getDot())).findFirst().orElse(null);
|
|
|
- }
|
|
|
- if (stockOne != null) {
|
|
|
- stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
- stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- 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);
|
|
|
- } else {
|
|
|
- throw new RuntimeException("未查到库存账");
|
|
|
- }
|
|
|
- PjOrderItems orderItems = orderItemsList.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
- if (orderItems != null) {
|
|
|
- orderItems.setSendNum(orderItems.getSendNum().subtract(item.getSendNum()));
|
|
|
- orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
|
|
|
- pjOrderItemsList.add(orderItems);
|
|
|
- } else {
|
|
|
- throw new RuntimeException("数据异常请联系管理员");
|
|
|
- }
|
|
|
+ //管理批次号
|
|
|
+ TireStockDesc stockOne;
|
|
|
+ if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && "1".equals(goodsDesc.getWhether())) {
|
|
|
+ stockOne = pjStockDescList.stream()
|
|
|
+ .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
+ && e.getDot().equals(item.getDot())).findFirst().orElse(null);
|
|
|
+ } else {
|
|
|
+ stockOne = pjStockDescList.stream()
|
|
|
+ .filter(e -> e.getGoodsId().equals(item.getGoodsId()) && e.getStorageId().equals(item.getStorageId())
|
|
|
+ && ObjectUtils.isNull(e.getDot())).findFirst().orElse(null);
|
|
|
}
|
|
|
- R res = iStockDescService.updateBatchByIdNew(pjStockDescArrayList);
|
|
|
- if (!res.isSuccess()) {
|
|
|
- throw new RuntimeException(res.getMsg());
|
|
|
- }
|
|
|
- orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
- ship.setNumberRows(shipVO.getShipItemsList().size());
|
|
|
- PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
- if (ObjectUtil.isNotEmpty(order)) {
|
|
|
- PjOrder order1 = orderMapper.selectOne(new LambdaQueryWrapper<PjOrder>()
|
|
|
- .eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjOrder::getIsDeleted, 0)
|
|
|
- .eq(PjOrder::getSrcNo, order.getOrdNo()));
|
|
|
- if (order1 != null && "待入库,已完成".contains(order1.getStatus())) {
|
|
|
- throw new RuntimeException("已生成销售退货单据,撤销失败");
|
|
|
- }
|
|
|
- if ("已收货".equals(order.getStatus()) || "申请退货".equals(order.getStatus()) || "已取消".equals(order.getStatus())) {
|
|
|
- throw new RuntimeException("单据已收货或申请售后中,操作失败");
|
|
|
- }
|
|
|
- order.setDeliveryBusinesDate(null);
|
|
|
- order.setStatus(OrderTypeEnum.GENERATED.getType());
|
|
|
- order.setXcxStatus("待发货");
|
|
|
- order.setVersion(order.getVersion() + 1);
|
|
|
- BigDecimal sendNum = shipVO.getShipItemsList().stream().map(PjShipItems::getSendNum).filter(Objects::nonNull)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- order.setOutGoodsTotalShipNum(order.getOutGoodsTotalShipNum().subtract(sendNum));
|
|
|
- orderMapper.updateById(order);
|
|
|
+ if (stockOne != null) {
|
|
|
+ stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
+ stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
+ 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);
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("未查到库存账");
|
|
|
+ }
|
|
|
+ PjOrderItems orderItems = orderItemsList.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
+ if (orderItems != null) {
|
|
|
+ orderItems.setSendNum(orderItems.getSendNum().subtract(item.getSendNum()));
|
|
|
+ orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
|
|
|
+ pjOrderItemsList.add(orderItems);
|
|
|
} else {
|
|
|
throw new RuntimeException("数据异常请联系管理员");
|
|
|
}
|
|
|
}
|
|
|
+ R res = iStockDescService.updateBatchByIdNew(pjStockDescArrayList);
|
|
|
+ if (!res.isSuccess()) {
|
|
|
+ throw new RuntimeException(res.getMsg());
|
|
|
+ }
|
|
|
+ orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
+ ship.setNumberRows(shipVO.getShipItemsList().size());
|
|
|
+ PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
+ if (ObjectUtil.isNotEmpty(order)) {
|
|
|
+ PjOrder order1 = orderMapper.selectOne(new LambdaQueryWrapper<PjOrder>()
|
|
|
+ .eq(PjOrder::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjOrder::getIsDeleted, 0)
|
|
|
+ .eq(PjOrder::getSrcNo, order.getOrdNo()));
|
|
|
+ if (order1 != null && "待入库,已完成".contains(order1.getStatus())) {
|
|
|
+ throw new RuntimeException("已生成销售退货单据,撤销失败");
|
|
|
+ }
|
|
|
+ if ("已收货".equals(order.getStatus()) || "申请退货".equals(order.getStatus()) || "已取消".equals(order.getStatus())) {
|
|
|
+ throw new RuntimeException("单据已收货或申请售后中,操作失败");
|
|
|
+ }
|
|
|
+ order.setDeliveryBusinesDate(null);
|
|
|
+ order.setStatus(OrderTypeEnum.GENERATED.getType());
|
|
|
+ order.setXcxStatus("待发货");
|
|
|
+ order.setVersion(order.getVersion() + 1);
|
|
|
+ BigDecimal sendNum = shipVO.getShipItemsList().stream().map(PjShipItems::getSendNum).filter(Objects::nonNull)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ order.setOutGoodsTotalShipNum(order.getOutGoodsTotalShipNum().subtract(sendNum));
|
|
|
+ orderMapper.updateById(order);
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("数据异常请联系管理员");
|
|
|
+ }
|
|
|
} else {
|
|
|
throw new RuntimeException("出库明细不能为空");
|
|
|
}
|