skyouc
2025-06-07 1e1e6c33558f00634d874232efab87a3734d132c
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -120,30 +120,25 @@
                    if (!deliveryItemService.updateById(deliveryItem)) {
                        throw new CoolException("DO单明细更新失败!!");
                    }
                    Delivery delivery = deliveryService.getOne(new LambdaQueryWrapper<Delivery>().eq(Delivery::getCode, orderItem.getPoCode()));
                    if (!Objects.isNull(delivery)) {
                        Double wkQty = Math.round((delivery.getWorkQty() - delivery.getAnfme()) * 10000) / 10000.0;
                        delivery.setWorkQty(wkQty.compareTo(0.0) >= 0 ? wkQty : 0).setExceStatus(POExceStatus.PO_EXCE_STATUS_UN_EXCE.val);
                        if (!deliveryService.updateById(delivery)) {
                            throw new CoolException("DO单据修改失败!!");
                        }
                    }
                }
            }
        }
        if (!Objects.isNull(order.getPoId())) {
            Delivery delivery = deliveryService.getById(order.getPoId());
            if (!Objects.isNull(delivery)) {
                Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
                Double workQty = Math.round((delivery.getWorkQty() - sum) * 10000) / 10000.0;
                delivery.setWorkQty(workQty.compareTo(0.0) >= 0 ? workQty : 0).setExceStatus(POExceStatus.PO_EXCE_STATUS_UN_EXCE.val);
                if (!deliveryService.updateById(delivery)) {
                    throw new CoolException("DO单据修改失败!!");
                }
            }
        }
        if (!this.remove(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getId, id))) {
            throw new CoolException("主单删除失败!!");
        }
        if (!outStockItemService.remove(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, id))) {
            throw new CoolException("单据明细删除失败!!");
        }
//        if (!this.saveOrUpdate(order)) {
//            throw new CoolException("单据取消失败!!");
//        }
        return R.ok("操作成功");
    }
@@ -167,7 +162,6 @@
        }
        Map<Long, List<DeliveryItem>> listMap = items.stream().collect(Collectors.groupingBy(DeliveryItem::getDeliveryId));
        listMap.keySet().forEach(key -> {
            //TODO 判断单据是否已经存在,如存在则累加修改子表,不存在才新建
            Delivery delivery = deliveryService.getById(key);
            if (Objects.isNull(delivery)) {
                throw new CoolException("单据不存在!!");
@@ -237,9 +231,10 @@
                exceStatus = AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val;
            }
            Double wkQty = Math.round((delivery.getWorkQty() + sum) * 10000) / 10000.0;
            if (!deliveryService.update(new LambdaUpdateWrapper<Delivery>()
                    .set(Delivery::getExceStatus, exceStatus)
                    .set(Delivery::getWorkQty, sum)
                    .set(Delivery::getWorkQty, wkQty)
                    .eq(Delivery::getId, key))) {
                throw new CoolException("主单修改失败!!");
            }