skyouc
2024-12-26 32afdc40d71b62ed0a2e0693cd56564816b188e5
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -108,6 +108,11 @@
                    throw new CoolException("明细不存在");
                }
                OrderDetl orderDetl = orderDetlService.getById(detl.getOrderDetlId());
                if (orderDetl == null) {
                    throw new CoolException("明细不存在");
                }
                TaskDetl taskDetl = new TaskDetl();
                taskDetl.sync(locDetl);
                taskDetl.setTaskId(task.getId());
@@ -798,16 +803,13 @@
        List<Long> filterParamsList = new ArrayList<>();
        List<OrderOutMergeParam> filterParams = new ArrayList<>();
        for (OrderOutMergeParam param : params) {
            if (param.getLocId() == null) {
                continue;
            }
            if(!filterParamsList.contains(param.getLocId())){
                filterParamsList.add(param.getLocId());
                filterParams.add(param);
        params.forEach(action -> {
            if (action.getLocId() != null) {
                filterParamsList.add(action.getLocId());
                filterParams.add(action);
            }
        }
        });
        HashMap<String, Double> stockMap = new HashMap<>();
        for (OrderOutMergeParam param : filterParams) {
@@ -929,10 +931,11 @@
                    }
                }
                //TODO 确认后,需将注释打开
                String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
//                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId));
                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId));
                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId), false);
                if (waveDetl == null) {
                    throw new CoolException("波次数据不存在");
                }
@@ -943,6 +946,13 @@
                }
            }
            //库存更新逻辑
            List<Long> orderIds = dto.getList().stream().findFirst().get().getOrderIds();
            List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, orderIds));
            orderDetls.forEach(orderDetl -> {
                orderUtils.updateWorkQty(orderDetl.getId(), orderDetl.getAnfme());
            });
            //库位F => R
            loc.setLocStsId(LocStsType.R.val());
            loc.setUpdateTime(new Date());
@@ -950,7 +960,6 @@
            if(!locUpdate){
                throw new CoolException("库位状态更新失败");
            }
        }
        Wave wave = waveService.getById(waveId);
@@ -965,7 +974,7 @@
        }
    }
    @Transactional
    @Transactional(rollbackFor = Exception.class)
    public void generateWave(GenerateWaveParam param) {
        if (param == null) {
            throw new CoolException("参数不能为空");