rev:限制任务号相同

This commit is contained in:
2025-11-21 14:15:39 +08:00
parent c1c1dd685a
commit 49da58b4a4
3 changed files with 64 additions and 2 deletions

View File

@@ -409,7 +409,47 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
// 获取当前所有内存指令
List<Instruction> instructionList = instructionServiceTwo.findAllInstFromCache();
// 调用接口查看任务状态
for (Instruction dto : instructionList) {
for (TaskDto taskDto : taskList) {
String TaskStatus = "创建";
String ExecutingAGV = "";
Instruction instruction = instructionList.stream()
.filter(row -> row.getTask_id().equals(taskDto.getTask_id()))
.findFirst().orElse(null);
// 等于就绪状态就不调用接口
if (ObjectUtil.isNotEmpty(instruction)) {
if (instruction.getSend_status().equals("1")) {
UnifiedResponse<JSONObject> resp = agvService.queryXZAgvInstStatusByCode(instruction.getInstruction_code(), JSONObject.class);
// 状态
String state = resp.getData().getString("state");
if ("RUNNING".equals(state) || "WAITING".equals(state)) {
TaskStatus = "执行中";
}
// 车号
ExecutingAGV = resp.getData().getString("vehicle");
}
}
// mes起点终点为空则不返回
if (ObjectUtil.isEmpty(taskDto.getStart_parent_code()) || ObjectUtil.isEmpty(taskDto.getNext_parent_code())) {
continue;
}
ResultTaskMesDto mesDto = ResultTaskMesDto.builder()
.TaskCode(taskDto.getTask_code())
.PickingLocation(taskDto.getStart_parent_code())
.PlacedLocation(taskDto.getNext_parent_code())
.TaskStatus(TaskStatus)
.ExecutingAGV(ExecutingAGV)
.CreateTime(taskDto.getCreate_time())
.ExecuteTime(taskDto.getUpdate_time())
.build();
mesDtoList.add(mesDto);
}
/* for (Instruction dto : instructionList) {
String TaskStatus = "创建";
String ExecutingAGV = "";
@@ -447,7 +487,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
.ExecuteTime(taskDto.getUpdate_time())
.build();
mesDtoList.add(mesDto);
}
}*/
// 返回结果
JSONObject result = new JSONObject();
result.put("ReturnStatus", 0);

View File

@@ -75,6 +75,16 @@ public class AutoCreateInst {
}
}
// 判断终点是否是CPJSSX如果是只能下发执行一个
if (nextPoint.equals("CPJSSX")) {
List<TaskDto> readyExTask = taskserver.findReadyExTask();
boolean isEnd = readyExTask.stream()
.anyMatch(row -> row.getNext_device_code().equals("CPJSSX"));
if (isEnd) {
continue;
}
}
// 获取任务对应的字段参数
String taskid = acsTask.getTask_id();
String taskcode = acsTask.getTask_code();

View File

@@ -113,6 +113,18 @@ public class MesToWmsServiceImpl implements MesToWmsService {
jsonItem.put("task_type",json.getString("task_type"));
}
// 判断是否有相同任务号的任务
SchBaseTask taskCode = taskService.getByCode(jsonItem.getString("TaskCode"));
if (ObjectUtil.isNotEmpty(taskCode)) {
JSONObject jsonErro = new JSONObject();
jsonErro.put("TaskCode", jsonItem.getString("TaskCode"));
jsonErro.put("ReturnStatus", 1);
jsonErro.put("ReturnInfo", "5.不能立即派送" + "此任务号已下发过任务!");
jsonErro.put("ReturnCount", null);
jsonErro.put("MsgTime", DateUtil.now());
erroList.add(jsonErro);
}
taskCreateList.add(jsonItem);
}
}