skyouc
2025-06-22 ebe2da6e4eefd59b366ebab3a651b32763b580ed
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/CacheSiteServiceImpl.java
@@ -13,6 +13,7 @@
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service("cacheSiteService")
public class CacheSiteServiceImpl extends ServiceImpl<CacheSiteMapper, CacheSite> implements CacheSiteService {
@@ -68,6 +69,9 @@
        HashMap<Long, Double> stockMap = new HashMap<>();
        List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderId, orderId));
       //fixme 校验当前订单是否完成播种,需要获取当前波次所有任务中A物料的执行数量是否等于订单的总量-已完成数量(anfme - qty) 或者 任务中已执行数量是否等订单中的执行数量  workQty = workQty
        List<OrderDetl> orderDetls = orderDetlService.getOrderDetlByOrderId(orderId);
        for (WaveSeed waveSeed : waveSeeds) {
            Double anfme = stockMap.get(waveSeed.getOrderDetlId());
            if (anfme == null) {
@@ -77,7 +81,6 @@
            stockMap.put(waveSeed.getOrderDetlId(), anfme);
        }
        List<OrderDetl> orderDetls = orderDetlService.getOrderDetlByOrderId(orderId);
        boolean check = true;
        for (OrderDetl orderDetl : orderDetls) {
            Double anfme = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
@@ -123,6 +126,7 @@
        Long waveId = order.getWaveId();
        boolean check = this.seedCompletePreview(param);
        if (!check) {//订单未处理完成
            List<Long> taskIds = new ArrayList<>();
            List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getWaveId, waveId));
@@ -133,7 +137,8 @@
            }
            if (!taskIds.isEmpty()) {
                List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getId, taskIds).notIn(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id, TaskStsType.UPDATED_OUT.id));
                List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getId, taskIds)
                        .notIn(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id, TaskStsType.UPDATED_OUT.id));
                if (!tasks.isEmpty()) {
                    throw new CoolException("存在未完成任务");
                }