pjb
2025-06-20 60fdc9564c65b90a8911ff10a25f3f3a63d3812c
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
@@ -63,7 +63,8 @@
            }
            //查询状态为RCS任务完成所有任务单据
//            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT.id));            HashSet<String> sycMatnrs = new HashSet<>();
            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT.id));
            HashSet<String> sycMatnrs = new HashSet<>();
            if (taskList.isEmpty()) {
//                throw new CoolException("没有可播种任务!!");
            } else {
@@ -84,7 +85,7 @@
                        //分配订单
                        Long waveId = taskDetl.getWaveId();
                        //同一个物料只添加一次播种任务
                        if(sycMatnrs.contains(taskDetl.getMatnr())) {
                        if (sycMatnrs.contains(taskDetl.getMatnr())) {
                            continue;
                        }
                        sycMatnrs.add(taskDetl.getMatnr());
@@ -104,7 +105,7 @@
                                .in(OrderDetl::getOrderId, orderIds)
                                .eq(OrderDetl::getStockIndex, matUniqueKey)
                                .eq(OrderDetl::getHostId, hostId));
                        if(orderDetls.isEmpty()){
                        if (orderDetls.isEmpty()) {
                            throw new CoolException("订单明细不存在");
                        }
@@ -112,11 +113,15 @@
                        for (OrderDetl orderDetl : orderDetls) {
                            //fixme 作业中数量调整放至,生成出库任务成功后
                            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
                            if (issued <= 0.0D) { continue; }
                            if (anfme <= 0.0D) { break; }
                            if (issued <= 0.0D) {
                                continue;
                            }
                            if (anfme <= 0.0D) {
                                break;
                            }
                            double workQty = issued;
                            if(anfme - issued < 0){
                            if (anfme - issued < 0) {
                                workQty = anfme;
                            }
                            anfme -= workQty;
@@ -168,7 +173,7 @@
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }finally {
        } finally {
            InterceptorIgnoreHelper.clearIgnoreStrategy();
        }
    }