skyouc
2025-06-09 952f6d21370d9d142f6ecbe11c179865d482f08f
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -28,6 +28,7 @@
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import com.vincent.rsf.server.manager.enums.WaveRuleType;
/**
 * @author Ryan
@@ -410,10 +411,10 @@
            throw new CoolException("未找到当前策略");
        }
        List<OrderOutItemDto> locItems = null;
        switch (waveRule.getType()) {
            case 1:
                locItems =  efficiencyFirst(param.getOrderId());
                break;
        if (WaveRuleType.Efficiency_First.type.equals(waveRule.getType())) {
            locItems =  efficiencyFirst(param.getOrderId());
        } else if (WaveRuleType.First_In_First_Out.type.equals(waveRule.getType())) {
        }
        return R.ok(locItems);
    }
@@ -421,7 +422,7 @@
    private List<LocItem> getEfficiencyFirstItemList(AsnOrderItem asnOrderItem){
        QueryWrapper<LocItem> locItemQueryWrapper = new QueryWrapper<>();
        locItemQueryWrapper.eq("matnr_code", asnOrderItem.getMatnrCode());
        locItemQueryWrapper.eq("batch", asnOrderItem.getBatch());
        locItemQueryWrapper.eq("batch", asnOrderItem.getSplrBatch());
        String applySql = String.format(
                "EXISTS (SELECT 1 FROM man_loc ml " +
                        "WHERE ml.use_status = '%s'" +
@@ -431,9 +432,7 @@
        );
        locItemQueryWrapper.apply(applySql);
        List<LocItem> locItems = locItemService.list(locItemQueryWrapper);
        locItems.sort((s1,s2)->{
            return LocUtils.isShallowLoc(s1.getLocCode())?1:0;
        });
        locItems.sort((s1,s2)-> LocUtils.isShallowLoc(s1.getLocCode())?-1:0);
        return locItems;
    }
@@ -462,8 +461,10 @@
                if (issued.doubleValue() > 0){
                    ExistDto existDto = new ExistDto().setBatch(locItem.getBatch()).setMatnr(locItem.getMatnrCode()).setLocNo(locItem.getLocCode());
                    if (existDtos.add(existDto)){
                        locItem.setWorkQty(issued.doubleValue() >= locItem.getAnfme() ? locItem.getAnfme() : issued.doubleValue());
                        OrderOutItemDto orderOutItemDto = new OrderOutItemDto();
                        orderOutItemDto.sync(locItem);
                        orderOutItemDto.setLocItem(locItem);
                        List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>()
                                .eq(DeviceSite::getChannel, loc.getChannel())
                                .eq(DeviceSite::getType, issued.doubleValue() >= locItem.getAnfme() && itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)