add:申请任务开关

This commit is contained in:
2024-05-22 11:21:13 +08:00
parent 414a212eaa
commit 2d7b4c616b
4 changed files with 87 additions and 29 deletions

View File

@@ -232,17 +232,18 @@ public class AppearanceInspectionScannerConveyorDeviceDriver extends AbstractOpc
} else {
this.createOutInstruction(this.currentDeviceCode);
}
} else if (this.mode == 6 && move > 0 && !requireSuccess) {
//向上位申请任务
this.applyInTask();
} else if (this.mode == 2 && this.move > 0 && StrUtil.isEmpty(this.barcode) && !requireSuccess) {
//下发输送线指令信息
this.distribute();
} else if (this.mode == 6 && move > 0 && !requireSuccess) {
//向上位申请任务
this.applyInTask();
} else if (this.mode == 7 && this.move > 0 && StrUtil.isNotEmpty(this.barcode) && !requireSuccess) {
this.applyAgvTask();
}
}
}
private boolean isTimeValid(long currentTimeMillis) {
return currentTimeMillis - this.requireTime >= this.requireTimeOut;
}
@@ -267,6 +268,41 @@ public class AppearanceInspectionScannerConveyorDeviceDriver extends AbstractOpc
}
}
/**
* 扫码申请AGV任务
*/
private void applyAgvTask() {
long currentTimeMillis = System.currentTimeMillis();
if (!isTimeValid(currentTimeMillis)) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.requireTimeOut);
} else {
this.requireTime = currentTimeMillis;
JSONObject requestParam = new JSONObject();
requestParam.put("device_code1", this.currentDeviceCode);
requestParam.put("type", RequestTypeEnum.APPLY_IN_TASK.getType());
requestParam.put("barcode1", this.barcode);
UnifiedResponse<JSONObject> response = acsToWmsService.applyTaskToWms(requestParam);
if (response.isSuccess()) {
this.requireSuccess = true;
}
}
}
/**
* 自动申请AGV任务
*
* @param barcode
* @return
*/
private UnifiedResponse<JSONObject> applyAgvTask(String barcode) {
JSONObject requestParam = new JSONObject();
requestParam.put("device_code1", this.currentDeviceCode);
requestParam.put("type", RequestTypeEnum.APPLY_IN_TASK.getType());
requestParam.put("barcode1", barcode);
return acsToWmsService.applyTaskToWms(requestParam);
}
public void createInInstruction() {
long currentTimeMillis = System.currentTimeMillis();
if (!isTimeValid(currentTimeMillis)) {
@@ -497,6 +533,13 @@ public class AppearanceInspectionScannerConveyorDeviceDriver extends AbstractOpc
instructionService.update(instruction);
logService.deviceExecuteLog(new LuceneLogDto(this.currentDeviceCode, "指令号:" + instruction.getInstruction_code() + ", 修改指令状态为 -> " + InstructionStatusEnum.BUSY.getName()));
} else if ((InstructionStatusEnum.BUSY.getIndex().equals(instruction.getInstruction_status()) || InstructionStatusEnum.READY.getIndex().equals(instruction.getInstruction_status())) && this.currentDeviceCode.equals(instruction.getNext_device_code())) {
Boolean applyTaskFlag = Optional.ofNullable(this.getExtraValue().get("applyTask")).map(Object::toString).map(Boolean::parseBoolean).orElse(false);
if (applyTaskFlag) {
UnifiedResponse<JSONObject> response = this.applyAgvTask(instruction.getVehicle_code());
if (!response.isSuccess()) {
return;
}
}
instruction.setInstruction_status(InstructionStatusEnum.FINISHED.getIndex());
instruction.setExecute_device_code(this.currentDeviceCode);
instructionService.finish(instruction);

View File

@@ -67,6 +67,8 @@ public class WithStationDeviceDriver extends AbstractOpcDeviceDriver implements
@Override
public void execute() {
device_code = this.getDeviceCode();
Boolean applyTaskFlag = Optional.ofNullable(this.getExtraValue().get("applyTask")).map(Object::toString).map(Boolean::parseBoolean).orElse(false);
if (!applyTaskFlag) return;
long currentTimeMillis = System.currentTimeMillis();
if (!isTimeValid(currentTimeMillis)) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.requireTimeOut);
@@ -106,7 +108,7 @@ public class WithStationDeviceDriver extends AbstractOpcDeviceDriver implements
AppearanceInspectionScannerConveyorDeviceDriver appearanceInspectionScannerConveyorDeviceDriver2 = (AppearanceInspectionScannerConveyorDeviceDriver) linkDevice.getDeviceDriver();
if (appearanceInspectionScannerConveyorDeviceDriver2.getMove() == 1 && !appearanceInspectionScannerConveyorDeviceDriver2.isRequireSuccess()) {
TaskDto taskDto2 = taskServer.findByContainer(appearanceInspectionScannerConveyorDeviceDriver2.getBarcode());
if (ObjectUtil.isEmpty(taskDto2) ) {
if (ObjectUtil.isEmpty(taskDto2)) {
requestParam.put("device_code1", deviceCode);
requestParam.put("barcode1", appearanceInspectionScannerConveyorDeviceDriver.getBarcode());
requestParam.put("device_code2", getLinkDeviceCode);