diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/FIFORuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/FIFORuleHandler.java index 856f7d1c..17f50d52 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/FIFORuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/FIFORuleHandler.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -54,8 +55,11 @@ public class FIFORuleHandler extends Decisioner vechielDtos = iStIvtStructattrService.collectVechicle(MapOf.of("material_id", param.getString("material_id") , "pcsn", param.getString("pcsn") , "stor_code", param.getString("stor_code") - , "order_by", "update_time asc") + , "plan_qty", plan_qty + , "order_by", "ABS(qty-#{plan_qty}) asc,update_time asc") ); + int finalPlan_qty = plan_qty; + vechielDtos.sort(Comparator.comparingInt(o -> (o.getQty().intValue() - finalPlan_qty))); List need = list.stream().map(StructattrVechielDto::getVehicle_code).collect(Collectors.toList()); List disList = new ArrayList<>();