From 18b895f274f2a9f471cf1489a9b9b0543785d08e Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期一, 09 三月 2026 11:13:07 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java | 148 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 109 insertions(+), 39 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 124e0bb..c96cda2 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
@@ -201,7 +201,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::getLocId, loc.getId()));
@@ -238,68 +237,139 @@
}
List<BasStationArea> basStationAreas = basStationAreaService.list(new LambdaQueryWrapper<BasStationArea>()
.apply("cross_zone_area != '[]'") // 涓嶆槸绌烘暟缁�
- .apply("container_type != '[]'") // 涓嶆槸绌烘暟缁�
- .apply("station_alias != '[]'") // 涓嶆槸绌烘暟缁�
- .apply("JSON_CONTAINS(cross_zone_area, '{0}') = 1", loc.getAreaId().toString())//鍙墽琛屽簱鍖哄尯鍖哄煙id
- .apply("JSON_CONTAINS(container_type, '{0}') = 1", containerType.getContainerType().toString())//瀹瑰櫒绫诲瀷
- .eq(BasStationArea::getDeleted, 0));// 閫氬父闇�瑕佸姞涓婃湭鍒犻櫎鏉′欢
+ .apply("container_type != '[]'")
+ .apply("station_alias != '[]'")
+ .apply("JSON_CONTAINS(cross_zone_area, {0}) = 1", loc.getAreaId().toString())//鍙墽琛屽簱鍖哄尯鍖哄煙id
+ .apply("JSON_CONTAINS(container_type, {0}) = 1", containerType.getContainerType().toString())//瀹瑰櫒绫诲瀷
+ .eq(BasStationArea::getDeleted, 0));
// .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", null)//鍖哄煙鍖呭惈绔欑偣闆�
- List<String> targSiteAreaList = new ArrayList<>();
- for (BasStationArea basStationArea : basStationAreas) {
- targSiteAreaList.add(basStationArea.getStationAreaId());
- }
- int count = 0;
- for (BasStationArea basStationArea : basStationAreas) {
- count++;
- if (!basStationArea.getStationAlias().isEmpty()) {
+ if (!basStationAreas.isEmpty()){
+ List<String> targSiteAreaList = new ArrayList<>();
+ for (BasStationArea basStationArea : basStationAreas) {
+ if (basStationArea.getStationAliasStaNo().isEmpty()){
+ continue;
+ }
+ targSiteAreaList.add(basStationArea.getId().toString());
+ }
+ if (targSiteAreaList.isEmpty()){
+ throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐癸紒锛侊紒璇锋鏌ュ簱鍖洪厤缃紒锛侊紒");
+ }
+ int count = 0;
+ for (BasStationArea basStationArea : basStationAreas) {
+ count++;
+ if (!basStationArea.getStationAliasStaNo().isEmpty()) {
+ List<OrderOutItemDto.staListDto> maps = new ArrayList<>();
+ for (String site : basStationArea.getStationAliasStaNo()) {
+ OrderOutItemDto.staListDto staListDto = new OrderOutItemDto.staListDto();
+ staListDto.setStaNo(site);
+ staListDto.setStaName(site);
+ maps.add(staListDto);
+ }
+ orderOutItemDto.setStaNos(maps);
+ //鑾峰彇婊¤冻鏉′欢绔欑偣
+ Set<String> stationSet = new HashSet<>(basStationArea.getStationAliasStaNo());
+// Set<String> stationSet = basStationArea.getStationAlias().stream().collect(Collectors.toSet());
+// Set<String> stationSet = deviceSites.stream().map(DeviceSite::getSite).collect(Collectors.toSet());
+ //宸蹭娇鐢ㄧ珯鐐�
+ Set<String> stas = stations.stream().map(BasStation::getStationName).collect(Collectors.toSet());
+ if (stas.size() == maps.size()) {
+ stations = new ArrayList<>();
+ 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"));
+ if (!Objects.isNull(basStation)) {
+ stations.add(basStation);
+ }
+
+ if (count == basStationAreas.size()) {
+ if (!Objects.isNull(basStation)) {
+ orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId());
+ orderOutItemDto.setSiteNo(basStation.getStationName());
+// throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
+ } else if (!stas.isEmpty()) {
+ orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId());
+ orderOutItemDto.setSiteNo(basStationArea.getStationAliasStaNo().get(0));
+ } else {
+ throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐癸紒锛侊紒璇锋鏌ュ簱鍖烘垨鑰呰矾寰勯厤缃紒锛侊紒");
+ }
+ } else {
+ if (Objects.isNull(basStation)) {
+ continue;
+// throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
+ }
+ orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId());
+ orderOutItemDto.setSiteNo(basStation.getStationName());
+ }
+
+ }
+
+ orderOutItemDto.setSource(item.getItemId().toString())
+ .setTargSiteAreaList(targSiteAreaList)
+ .setSourceId(item.getWaveId().toString());
+ list.add(orderOutItemDto);
+ locList.add(loc);
+
+ issued = issued.subtract(new BigDecimal(locItem.getAnfme().toString()));
+ break;
+ }
+ } else {
+ List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>()
+ .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel())
+ .eq(!Objects.isNull(loc.getAreaId()), DeviceSite::getAreaIdStart, loc.getAreaId())
+ .eq(DeviceSite::getType, issued.doubleValue() >= locItem.getAnfme() && itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
+ );
+
+ if (!deviceSites.isEmpty()) {
List<OrderOutItemDto.staListDto> maps = new ArrayList<>();
- for (String site : basStationArea.getStationAlias()) {
+ for (DeviceSite sta : deviceSites) {
OrderOutItemDto.staListDto staListDto = new OrderOutItemDto.staListDto();
- staListDto.setStaNo(site);
- staListDto.setStaName(site);
+ staListDto.setStaNo(sta.getSite());
+ staListDto.setStaName(sta.getSite());
maps.add(staListDto);
}
orderOutItemDto.setStaNos(maps);
//鑾峰彇婊¤冻鏉′欢绔欑偣
- Set<String> stationSet = new HashSet<>(basStationArea.getStationAlias());
-// Set<String> stationSet = basStationArea.getStationAlias().stream().collect(Collectors.toSet());
-// Set<String> stationSet = deviceSites.stream().map(DeviceSite::getSite).collect(Collectors.toSet());
+ 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>()
+ .apply("cross_zone_area != '[]'") // 涓嶆槸绌烘暟缁�
+ .apply("container_type != '[]'")
+ .apply("JSON_CONTAINS(cross_zone_area, {0}) = 1", loc.getAreaId().toString())//鍙墽琛屽簱鍖哄尯鍖哄煙id
+ .apply("JSON_CONTAINS(container_type, {0}) = 1", containerType.getContainerType().toString())//瀹瑰櫒绫诲瀷
.eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
.in(BasStation::getStationName, stationSet)
.notIn(!stas.isEmpty(), BasStation::getStationName, stas)
.last("LIMIT 1"));
- if (!Objects.isNull(basStation)) {
+
+ if (Objects.isNull(basStation)) {
+ throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
+ }
+ if (basStation.getType()!=0){
stations.add(basStation);
}
-
- if (count == basStationAreas.size()) {
- if (!Objects.isNull(basStation)) {
- orderOutItemDto.setSiteNo(basStation.getStationName());
-// throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
- }
- } else {
- if (Objects.isNull(basStation)) {
- continue;
-// throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
- }
- orderOutItemDto.setSiteNo(basStation.getStationName());
- }
-
+ orderOutItemDto.setSiteNo(basStation.getStationName());
+ } else {
+ throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐癸紒锛侊紒璇锋鏌ヨ矾寰勭鐞嗭紒锛侊紒");
}
orderOutItemDto.setSource(item.getItemId().toString())
- .setTargSiteAreaList(targSiteAreaList)
+ .setTargSiteAreaList(new ArrayList<>())
.setSourceId(item.getWaveId().toString());
list.add(orderOutItemDto);
- locList.add(loc);
+ locList.add(loc);
issued = issued.subtract(new BigDecimal(locItem.getAnfme().toString()));
- break;
}
+// if (true){
+//// throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐癸紒锛侊紒璇锋鏌ュ簱鍖洪厤缃紒锛侊紒");
+// }
}
}
}
@@ -324,7 +394,7 @@
return container;
}
}
- return null;
+ throw new CoolException("瀹瑰櫒鐮�:"+barcode+"寮傚父==>鏈壘鍒板尮閰嶇殑瑙勫垯");
}
}
--
Gitblit v1.9.1