chen.lin
2 天以前 e74b573ca564027c78406354dd3797bb3e36de35
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -478,16 +478,28 @@
            if (Objects.isNull(param) || StringUtils.isBlank(param.getLocCode())) {
                continue;
            }
            Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, param.getLocCode()).eq(Loc::getBarcode, param.getBarcode()));
            // 修复:构建库位查询条件,如果barcode为空,只按locCode查询
            LambdaQueryWrapper<Loc> locQueryWrapper = new LambdaQueryWrapper<Loc>()
                    .eq(Loc::getCode, param.getLocCode());
            if (StringUtils.isNotBlank(param.getBarcode())) {
                locQueryWrapper.eq(Loc::getBarcode, param.getBarcode());
            }
            Loc loc = locService.getOne(locQueryWrapper);
            if (!Objects.isNull(loc)) {
                List<LocItem> locItems = new ArrayList<>();
                LocItem locItem = locItemService.getById(param.getId());
                WkOrderItem orderItem = outStockItemService.getOne(new LambdaQueryWrapper<WkOrderItem>()
                // 修复:构建查询条件,先构建基础条件,再根据值是否为空动态添加
                LambdaQueryWrapper<WkOrderItem> orderItemWrapper = new LambdaQueryWrapper<WkOrderItem>()
                        .eq(WkOrderItem::getOrderId, outId)
                        .eq(StringUtils.isNotBlank(locItem.getBatch()), WkOrderItem::getSplrBatch, locItem.getBatch())
                        .eq(StringUtils.isNotBlank(locItem.getFieldsIndex()), WkOrderItem::getFieldsIndex, locItem.getFieldsIndex())
                        .eq(WkOrderItem::getMatnrId, locItem.getMatnrId()));
                        .eq(WkOrderItem::getMatnrId, locItem.getMatnrId());
                if (StringUtils.isNotBlank(locItem.getBatch())) {
                    orderItemWrapper.eq(WkOrderItem::getSplrBatch, locItem.getBatch());
                }
                if (StringUtils.isNotBlank(locItem.getFieldsIndex())) {
                    orderItemWrapper.eq(WkOrderItem::getFieldsIndex, locItem.getFieldsIndex());
                }
                WkOrderItem orderItem = outStockItemService.getOne(orderItemWrapper);
                if (Objects.isNull(orderItem)) {
                    throw new CoolException("单据明细不存在!!");
@@ -727,4 +739,25 @@
        return waveItems;
    }
    /**
     * @param id
     * @return
     * @author Ryan
     * @description 完成出库单
     * @time 2025/4/25 10:07
     */
    @Override
    public R completeOutOrderById(Long id) {
        WkOrder order = this.getById(id);
        if (Objects.isNull(order)) {
            return R.error("出库单不存在!!");
        }
        order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
        if (!this.updateById(order)) {
            throw new CoolException("完成出库单失败!!");
        }
         return R.ok("完成出库单成功!!");
    }
}