Browse Source

add:堆垛机任务数量控制

master
耿宝印 2 months ago
parent
commit
a4b329d912
  1. 6
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/driver/conveyor/appearance_inspection_scannner_conveyor/AppearanceInspectionScannerConveyorDeviceDriver.java
  2. 4
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/driver/stacker/double_stacker/enums/ErrorEnum.java
  3. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java
  4. 9
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java
  5. 3
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java
  6. 10
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
  7. 13
      nladmin-ui/src/views/acs/device/driver/appearance_inspection_scanner_conveyor_device.vue

6
nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/driver/conveyor/appearance_inspection_scannner_conveyor/AppearanceInspectionScannerConveyorDeviceDriver.java

@ -696,7 +696,13 @@ public class AppearanceInspectionScannerConveyorDeviceDriver extends AbstractOpc
this.requireTime = currentTimeMillis;
LOCK.lock();
try {
List<TaskDto> taskDtoBusys = taskService.findInstsByNextDeviceCode(deviceCode);
Device cacheDevice = deviceAppService.findDeviceByCode(deviceCode);
Integer maxInstNum = Optional.ofNullable(cacheDevice.getExtraValue().get("maxInstNum")).map(Object::toString).map(Integer::parseInt).orElse(2);
if (taskDtoBusys.size() >= maxInstNum) {
this.unExecutedMessage = "查询出库任务,当前终点: " + deviceCode + ", 指令数量大于设定最大值: " + maxInstNum;
return;
}
List<String> checkoutStartDeviceCode = new ArrayList<>();
if (cacheDevice.getDeviceDriver() instanceof AppearanceInspectionScannerConveyorDeviceDriver) {
AppearanceInspectionScannerConveyorDeviceDriver appearanceInspectionScannerConveyorDeviceDriver = (AppearanceInspectionScannerConveyorDeviceDriver) cacheDevice.getDeviceDriver();

4
nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/driver/stacker/double_stacker/enums/ErrorEnum.java

@ -49,7 +49,9 @@ public enum ErrorEnum {
ERROR_35(35, "减速开关信号异常"),
ERROR_36(36, "防撞开关被触碰"),
ERROR_37(37, "防撞激光被遮挡"),
ERROR_38(38, "高货物禁止放入矮库位");
ERROR_38(38, "高货物禁止放入矮库位"),
ERROR_40(40, "水平定位曲线故障"),
ERROR_41(41, "起升定位曲线故障");
private int code;
private String desc;

2
nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java

@ -589,4 +589,6 @@ public interface InstructionService extends CommonService<InstructionMybatis> {
List<Instruction> findReadyInstByXDeviceCode(List<String> xDeviceCodeList, String noY);
Instruction findByNextPointCode(String nextPointCode);
List<Instruction> findInstsByNextDeviceCode(String deviceCode);
}

9
nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java

@ -2406,4 +2406,13 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
.orElse(null);
}
@Override
public List<Instruction> findInstsByNextDeviceCode(String deviceCode) {
return Optional.ofNullable(this.instructions)
.orElse(new CopyOnWriteArrayList<>())
.stream()
.filter(inst -> inst.getNext_device_code().equals(deviceCode))
.collect(Collectors.toList());
}
}

3
nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java

@ -408,4 +408,7 @@ public interface TaskService extends CommonService<Task> {
TaskDto findFrontBindTask(TaskDto frontTask, String backNoY);
void cancelNoSendWms(String task_id);
List<TaskDto> findInstsByNextDeviceCode(String deviceCode);
}

10
nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java

@ -1535,4 +1535,14 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
//移除任务缓存信息
this.removeByCodeFromCache(entity.getTask_code());
}
@Override
public List<TaskDto> findInstsByNextDeviceCode(String deviceCode) {
return Optional.ofNullable(this.tasks)
.orElse(new CopyOnWriteArrayList<>())
.stream()
.filter(taskDto -> taskDto.getNext_device_code().equals(deviceCode))
.filter(taskDto -> taskDto.getTask_status().equals(TaskStatusEnum.BUSY.getIndex()))
.collect(Collectors.toList());
}
}

13
nladmin-ui/src/views/acs/device/driver/appearance_inspection_scanner_conveyor_device.vue

@ -204,8 +204,14 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="自动申请AGV任务:" label-width="150px">
<el-switch v-model="form.applyTask" />
<el-form-item label="最大指令数量:" label-width="100px">
<!-- <el-switch v-model="form.applyTask" />-->
<el-input
v-model.number="form.maxInstNum"
type="number"
:min="1"
:step="1"
/>
</el-form-item>
</el-col>
</span>
@ -512,7 +518,8 @@ export default {
samePoint: false,
scanApplyTask: false,
applyTask: false,
isFront: false
isFront: false,
maxInstNum: 1
},
rules: {}
}

Loading…
Cancel
Save