From 8a42df9f13c1328b36ba5919258b2636dce455fe Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 24 六月 2025 16:25:48 +0800 Subject: [PATCH] no message --- rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java | 64 ++++++++++++++++++++++++++++++++ 1 files changed, 64 insertions(+), 0 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java index c4dcabd..a016244 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java @@ -2,13 +2,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.common.SpringUtils; +import com.vincent.rsf.server.api.utils.LocUtils; import com.vincent.rsf.server.manager.entity.DeviceSite; import com.vincent.rsf.server.manager.entity.Loc; +import com.vincent.rsf.server.manager.entity.LocItem; import com.vincent.rsf.server.manager.service.DeviceSiteService; +import com.vincent.rsf.server.manager.service.LocItemService; import com.vincent.rsf.server.manager.service.LocService; import com.vincent.rsf.server.manager.enums.LocStsType; +import java.util.Comparator; +import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; public class LocManageUtil { @@ -48,4 +54,62 @@ DeviceSite loc = deviceSite.getOne(new LambdaQueryWrapper<DeviceSite>().eq(DeviceSite::getStatus, 1), false); return !Objects.isNull(loc) ? loc.getSite() : null; } + + /** + * 鍑哄簱绛栫暐锛�--銆堟晥鐜囦紭鍖栥�� + * @param matnrCode + * @param splrBatch + * @param anfme + * @return + */ + public static List<LocItem> getEfficiencyFirstItemList(String matnrCode, String splrBatch, Double anfme) { + LambdaQueryWrapper<LocItem> locItemQueryWrapper = new LambdaQueryWrapper<>(); + locItemQueryWrapper.eq(LocItem::getMatnrCode, matnrCode); + locItemQueryWrapper.eq(LocItem::getBatch, splrBatch); + String applySql = String.format( + "EXISTS (SELECT 1 FROM man_loc ml " + + "WHERE ml.use_status = '%s'" + + "AND ml.id = man_loc_item.loc_id " + + ")", + LocStsType.LOC_STS_TYPE_F.type + ); + locItemQueryWrapper.apply(applySql); + LocItemService locItemService = SpringUtils.getBean(LocItemService.class); + List<LocItem> locItems = locItemService.list(locItemQueryWrapper); + locItems.sort(Comparator.comparing((LocItem item) -> !LocUtils.isShallowLoc(item.getLocCode()))); + List<LocItem> locsSet = locItems.stream().filter(locItem -> locItem.getAnfme().compareTo(anfme) == 0.0).collect(Collectors.toList()); + if (!locsSet.isEmpty()) { + return locsSet; + } + return locItems; + } + + + /** + * 鍑哄簱绛栫暐锛�--<鍏堣繘鍏堝嚭> + * @param matnrCode + * @param splrBatch + * @param anfme + * @return + */ + public static List<LocItem> getFirstInFirstOutItemList(String matnrCode, String splrBatch, Double anfme) { + LambdaQueryWrapper<LocItem> locItemQueryWrapper = new LambdaQueryWrapper<>(); + locItemQueryWrapper.eq(LocItem::getMatnrCode, matnrCode); + locItemQueryWrapper.eq(LocItem::getBatch, splrBatch); + locItemQueryWrapper.orderByAsc(LocItem::getCreateTime); + String applySql = String.format( + "EXISTS (SELECT 1 FROM man_loc ml " + + "WHERE ml.use_status = '%s'" + + "AND ml.id = man_loc_item.loc_id " + + ")", + LocStsType.LOC_STS_TYPE_F.type + ); + locItemQueryWrapper.apply(applySql); + LocItemService locItemService = SpringUtils.getBean(LocItemService.class); + List<LocItem> locItems = locItemService.list(locItemQueryWrapper); + return locItems; + } + + + } -- Gitblit v1.9.1