From ca36e3b92acaa53f042fd8af1920930af782efc6 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期四, 25 十二月 2025 12:43:16 +0800
Subject: [PATCH] Merge branch 'devlop_org' into devlop-phyz
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java | 64 ++++++++++++++++++--------------
1 files changed, 36 insertions(+), 28 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 aa46ba7..cfc5abf 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
@@ -8,15 +8,12 @@
import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
import com.vincent.rsf.server.manager.controller.params.WaveToLocParams;
import com.vincent.rsf.server.manager.entity.*;
-import com.vincent.rsf.server.manager.enums.ContainerType;
import com.vincent.rsf.server.manager.enums.TaskType;
import com.vincent.rsf.server.manager.enums.WaveRuleType;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.manager.enums.LocStsType;
-import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
-import javax.swing.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -38,24 +35,24 @@
public static String getTargetLoc(Long areaId, Long containerType) {
Long locType = null;
- if (!Objects.isNull(containerType)) {
- LocTypeService locService = SpringUtils.getBean(LocTypeService.class);
- if (containerType.equals(ContainerType.CONTAINER_TYPE_NORMAL.val)) {
- LocType low = locService.getOne(new LambdaQueryWrapper<LocType>()
- .eq(LocType::getCode, "L"));
- if (Objects.isNull(low)) {
- throw new CoolException("搴綅椤炲瀷涓嶅瓨鍦紒锛�");
- }
- locType = low.getId();
- } else {
- LocType low = locService.getOne(new LambdaQueryWrapper<LocType>()
- .eq(LocType::getCode, "H"));
- if (Objects.isNull(low)) {
- throw new CoolException("搴綅椤炲瀷涓嶅瓨鍦紒锛�");
- }
- locType = low.getId();
- }
- }
+// if (!Objects.isNull(containerType)) {
+// LocTypeService locService = SpringUtils.getBean(LocTypeService.class);
+// if (containerType.equals(ContainerType.CONTAINER_TYPE_NORMAL.val)) {
+// LocType low = locService.getOne(new LambdaQueryWrapper<LocType>()
+// .eq(LocType::getCode, "L"));
+// if (Objects.isNull(low)) {
+// throw new CoolException("搴綅椤炲瀷涓嶅瓨鍦紒锛�");
+// }
+// locType = low.getId();
+// } else {
+// LocType low = locService.getOne(new LambdaQueryWrapper<LocType>()
+// .eq(LocType::getCode, "H"));
+// if (Objects.isNull(low)) {
+// throw new CoolException("搴綅椤炲瀷涓嶅瓨鍦紒锛�");
+// }
+// locType = low.getId();
+// }
+// }
//TODO 搴撲綅绛栫暐鍚庣画鎺掓湡
LocService locService = SpringUtils.getBean(LocService.class);
Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>()
@@ -129,7 +126,12 @@
LambdaQueryWrapper<LocItem> locItemQueryWrapper = new LambdaQueryWrapper<>();
locItemQueryWrapper.eq(LocItem::getMatnrCode, matnrCode);
locItemQueryWrapper.eq(StringUtils.isNotEmpty(splrBatch), LocItem::getBatch, splrBatch);
- locItemQueryWrapper.orderByAsc(LocItem::getCreateTime);
+ //濡傛灉鎵规涓嶄负绌猴紝鎸夋壒娆″厛鍚庡嚭搴�
+ if (StringUtils.isNotBlank(splrBatch)) {
+ locItemQueryWrapper.orderByAsc(LocItem::getBatch);
+ } else {
+ locItemQueryWrapper.orderByAsc(LocItem::getCreateTime);
+ }
String applySql = String.format(
"EXISTS (SELECT 1 FROM man_loc ml " +
"WHERE ml.use_status = '%s'" +
@@ -156,6 +158,8 @@
DeviceSiteService deviceSiteService = SpringUtils.getBean(DeviceSiteService.class);
List<OrderOutItemDto> list = new ArrayList<>();
+ //涓嶈绔欑偣閲嶅浣跨敤闂
+ List<BasStation> stations = new ArrayList<>();
Set<ExistDto> existDtos = new HashSet<>();
for (WaveToLocParams item : params) {
BigDecimal issued = new BigDecimal(item.getAnfme().toString())
@@ -175,7 +179,6 @@
locItems = LocManageUtil.getFirstInFirstOutItemList(item.getMatnrCode(), item.getBatch(), item.getAnfme());
}
}
-
for (LocItem locItem : locItems) {
Loc loc = locService.getById(locItem.getLocId());
List<LocItem> itemList = locItemService.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocCode, locItem.getLocCode()));
@@ -184,8 +187,8 @@
if (existDtos.add(existDto)) {
locItem.setOutQty(issued.doubleValue() >= locItem.getAnfme() ? locItem.getAnfme() : issued.doubleValue());
locItem.setBarcode(loc.getBarcode())
- .setSourceId(item.getWaveId())
- .setSource(item.getItemId());
+ .setSourceId(item.getWaveId())//娉㈡ID
+ .setSource(item.getItemId());//娉㈡鏄庣粏ID
OrderOutItemDto orderOutItemDto = new OrderOutItemDto();
orderOutItemDto.setLocItem(locItem);
@@ -203,12 +206,18 @@
maps.add(staListDto);
}
orderOutItemDto.setStaNos(maps);
- //榛樿鑾峰彇绗竴绔欑偣
- DeviceSite deviceSite = deviceSites.stream().findFirst().get();
+ //鑾峰彇婊¤冻鏉′欢绔欑偣
+ Set<String> stationSet = deviceSites.stream().map(DeviceSite::getSite).collect(Collectors.toSet());
+ //宸蹭娇鐢ㄧ珯鐐�
+ Set<String> stas = stations.stream().map(BasStation::getStationName).collect(Collectors.toSet());
BasStationService basStationService = SpringUtils.getBean(BasStationService.class);
BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
.eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
+ .in(BasStation::getStationName, stationSet)
+ .notIn(!stas.isEmpty(), BasStation::getStationName, stas)
.last("LIMIT 1"));
+ stations.add(basStation);
+
if (Objects.isNull(basStation)) {
throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
}
@@ -217,7 +226,6 @@
orderOutItemDto.setSource(item.getItemId())
.setSourceId(item.getWaveId());
-
list.add(orderOutItemDto);
issued = issued.subtract(new BigDecimal(locItem.getAnfme().toString()));
--
Gitblit v1.9.1