divStruct = new ArrayList<>();
for (StructattrVechielDto vechielDto : vechielDtos) {
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/AcsToWmsServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/AcsToWmsServiceImpl.java
index 88ef434..dd3f1c0 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/AcsToWmsServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext_manage/service/impl/AcsToWmsServiceImpl.java
@@ -35,9 +35,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
*
@@ -261,9 +262,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
"该任务申请托盘["+vehicle_code+"]为空,无法申请任务!");
}
//判断该子托盘是否存在未完成任务
- Integer sub_tray_lists = iSchBaseTaskService.findUnFinishTasksBySub_tray(vehicle_code);
- Assert.isFalse(sub_tray_lists>0,
- "该任务申请托盘["+vehicle_code+"]已存在未完成的任务,无法申请任务!");
+ // Integer sub_tray_lists = iSchBaseTaskService.findUnFinishTasksBySub_tray(vehicle_code);
+ // Assert.isFalse(sub_tray_lists>0,
+ // "该任务申请托盘["+vehicle_code+"]已存在未完成的任务,无法申请任务!");
//todo 仅生成任务,不生成单据
// 校验数据
@@ -275,44 +276,39 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
throw new BadRequestException(LangBehavior.language("pda_manage.start_point_not_exist"));
}
+ //查询是否有执行中的点位
+ //找到空点位正在执行的任务
+ List taskingSchBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper()
+ .eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
+ .le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode()));
+
+
+ List pointList = Optional.ofNullable(taskingSchBaseTaskList)
+ .orElse(Collections.emptyList())
+ .stream()
+ .flatMap(task -> Stream.of(task.getPoint_code1(), task.getPoint_code2()))
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+
//计算终点点位
List end_point_code_list = iStructattrService.list(new LambdaUpdateWrapper()
.eq(Structattr::getSect_code,"FJError")
.eq(Structattr::getIs_used, 1)
.isNull(Structattr::getStoragevehicle_code)
+ .notIn(CollectionUtils.isNotEmpty(pointList),Structattr::getStruct_code,pointList)
.eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
- .orderByDesc(Structattr::getUpdate_time));
+ .orderByDesc(Structattr::getUpdate_time)
+ .last("LIMIT 1"));
if(CollectionUtils.isEmpty(end_point_code_list)){
throw new BadRequestException(LangBehavior.language("pda_manage.end_point_not_exist"));
}
-
-
// 校验终点
Structattr end_point = end_point_code_list.get(0);
-
- //查询是否有执行中的点位
- //找到空点位正在执行的任务
- List taskingSchBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper()
- .eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
- .and(wp -> wp
- .eq(SchBaseTask::getPoint_code1, end_point.getStruct_code())
- .or()
- .eq(SchBaseTask::getPoint_code2, end_point.getStruct_code())
- .or()
- .eq(SchBaseTask::getPoint_code1, start_point.getStruct_code())
- .or()
- .eq(SchBaseTask::getPoint_code2, start_point.getStruct_code())
- )
- .le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode()));
-
- if (CollectionUtils.isNotEmpty(taskingSchBaseTaskList)) {
- throw new BadRequestException(LangBehavior.language("pda_manage.ongoing_task_at_point"));
- }
- start_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
- iStructattrService.updateById(start_point);
- end_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
- iStructattrService.updateById(end_point);
+ start_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
+ iStructattrService.updateById(start_point);
+ end_point.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
+ iStructattrService.updateById(end_point);
// 创建任务
JSONObject task = new JSONObject();
task.put("config_code", IOSConstant.ACS_ERROR_TASK);
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/controller/PdaIosOutController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/controller/PdaIosOutController.java
index fea3c6c..5d85fa0 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/controller/PdaIosOutController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/controller/PdaIosOutController.java
@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import static org.nl.common.utils.ValidationUtil.assertNotBlankJson;
+
/**
* 手持出库管理
*
@@ -64,6 +66,26 @@ public class PdaIosOutController {
return new ResponseEntity<>(pdaIosOutService.callMaterialConfirm(whereJson), HttpStatus.OK);
}
+ /**
+ * 出库分拣提交
+ */
+ @PostMapping("/outSortingSubmit")
+ @Log("出库分拣提交")
+ public ResponseEntity