|
|
@@ -1895,22 +1895,18 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
|
|
|
throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
|
|
|
}
|
|
|
- PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
- if (orderItems != null) {
|
|
|
- if (ship.getBillno().contains("TK")) {
|
|
|
- if (orderItems.getSendNum().subtract(item.getSendNum()).compareTo(new BigDecimal("0.00")) < 0) {
|
|
|
- throw new RuntimeException("商品:" + goodsDesc.getCname() + "退货数量为负数");
|
|
|
- }
|
|
|
- } else {
|
|
|
+ if (!"TKSHGD".contains(ship.getBizTypeName())) {
|
|
|
+ PjOrderItems orderItems = pjOrderItems.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("商品:" + goodsDesc.getCname() + "已入库数量超过订单数量");
|
|
|
}
|
|
|
+ orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
|
|
|
+ orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
|
|
|
+ pjOrderItemsList.add(orderItems);
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("数据异常请联系管理员");
|
|
|
}
|
|
|
- orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
|
|
|
- orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
|
|
|
- pjOrderItemsList.add(orderItems);
|
|
|
- } else {
|
|
|
- throw new RuntimeException("数据异常请联系管理员");
|
|
|
}
|
|
|
//生成库存账
|
|
|
PjStockDesc stockDesc = new PjStockDesc();
|
|
|
@@ -2010,7 +2006,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
if (!pjStockDescArrayListUpdate.isEmpty()) {
|
|
|
iStockDescService.updateBatchById(pjStockDescArrayListUpdate);
|
|
|
}
|
|
|
- orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
+ if (!"TKSHGD".contains(ship.getBizTypeName())) {
|
|
|
+ orderItemsService.updateBatchById(pjOrderItemsList);
|
|
|
+ }
|
|
|
//查询所有上架商品
|
|
|
LambdaQueryWrapper<PjProductLaunch> productLaunchQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
productLaunchQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -2073,32 +2071,34 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
rwShip.setUpdateTime(new Date());
|
|
|
baseMapper.updateById(rwShip);
|
|
|
}
|
|
|
- PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
- 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()) {
|
|
|
- //数量和
|
|
|
- BigDecimal goodsNum = orderItemsList.stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- //发货数量和
|
|
|
- BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- //发货金额和
|
|
|
- BigDecimal goodsTotalShipAmount = orderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- if (ObjectUtil.isNotEmpty(order)) {
|
|
|
- order.setGoodsTotalShipNum(sendNum);
|
|
|
- order.setGoodsTotalShipAmount(goodsTotalShipAmount);
|
|
|
- if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
|
|
|
- order.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
|
|
|
- order.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
|
|
|
- order.setDeliveryBusinesDate(new Date());
|
|
|
- orderMapper.updateById(order);
|
|
|
- } else {
|
|
|
- order.setStorageId(ship.getStorageId());
|
|
|
- orderMapper.updateById(order);
|
|
|
+ if (!"TKSHGD".contains(ship.getBizTypeName())) {
|
|
|
+ PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
+ 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()) {
|
|
|
+ //数量和
|
|
|
+ BigDecimal goodsNum = orderItemsList.stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //发货数量和
|
|
|
+ BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //发货金额和
|
|
|
+ BigDecimal goodsTotalShipAmount = orderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (ObjectUtil.isNotEmpty(order)) {
|
|
|
+ order.setGoodsTotalShipNum(sendNum);
|
|
|
+ order.setGoodsTotalShipAmount(goodsTotalShipAmount);
|
|
|
+ if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
|
|
|
+ order.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
|
|
|
+ order.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
|
|
|
+ order.setDeliveryBusinesDate(new Date());
|
|
|
+ orderMapper.updateById(order);
|
|
|
+ } else {
|
|
|
+ order.setStorageId(ship.getStorageId());
|
|
|
+ orderMapper.updateById(order);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|