Browse Source

add:申请任务开关

master
gengby 6 months ago
parent
commit
2d7b4c616b
  1. 51
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/driver/conveyor/appearance_inspection_scannner_conveyor/AppearanceInspectionScannerConveyorDeviceDriver.java
  2. 2
      nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/driver/station/with_station/WithStationDeviceDriver.java
  3. 27
      nladmin-ui/src/views/acs/device/driver/appearance_inspection_scanner_conveyor_device.vue
  4. 8
      nladmin-ui/src/views/acs/device/driver/with_station_device.vue

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

@ -232,17 +232,18 @@ public class AppearanceInspectionScannerConveyorDeviceDriver extends AbstractOpc
} else { } else {
this.createOutInstruction(this.currentDeviceCode); 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) { } else if (this.mode == 2 && this.move > 0 && StrUtil.isEmpty(this.barcode) && !requireSuccess) {
//下发输送线指令信息 //下发输送线指令信息
this.distribute(); 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) { private boolean isTimeValid(long currentTimeMillis) {
return currentTimeMillis - this.requireTime >= this.requireTimeOut; 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() { public void createInInstruction() {
long currentTimeMillis = System.currentTimeMillis(); long currentTimeMillis = System.currentTimeMillis();
if (!isTimeValid(currentTimeMillis)) { if (!isTimeValid(currentTimeMillis)) {
@ -497,6 +533,13 @@ public class AppearanceInspectionScannerConveyorDeviceDriver extends AbstractOpc
instructionService.update(instruction); instructionService.update(instruction);
logService.deviceExecuteLog(new LuceneLogDto(this.currentDeviceCode, "指令号:" + instruction.getInstruction_code() + ", 修改指令状态为 -> " + InstructionStatusEnum.BUSY.getName())); 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())) { } 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.setInstruction_status(InstructionStatusEnum.FINISHED.getIndex());
instruction.setExecute_device_code(this.currentDeviceCode); instruction.setExecute_device_code(this.currentDeviceCode);
instructionService.finish(instruction); instructionService.finish(instruction);

2
nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/driver/station/with_station/WithStationDeviceDriver.java

@ -67,6 +67,8 @@ public class WithStationDeviceDriver extends AbstractOpcDeviceDriver implements
@Override @Override
public void execute() { public void execute() {
device_code = this.getDeviceCode(); 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(); long currentTimeMillis = System.currentTimeMillis();
if (!isTimeValid(currentTimeMillis)) { if (!isTimeValid(currentTimeMillis)) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.requireTimeOut); log.trace("触发时间因为小于{}毫秒,而被无视", this.requireTimeOut);

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

@ -65,8 +65,8 @@
</div> </div>
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="78px"> <el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="78px">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="关联设备:" prop="getLinkDeviceCode" label-width="105px"> <el-form-item label="关联设备:" prop="getLinkDeviceCode" label-width="150px">
<el-select <el-select
v-model="form.getLinkDeviceCode" v-model="form.getLinkDeviceCode"
filterable filterable
@ -83,25 +83,32 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="当前排:" label-width="90px" prop="currentX"> <el-form-item label="自动申请AGV任务:" label-width="150px">
<el-switch v-model="form.applyTask"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="当前排:" label-width="150px" prop="currentX">
<el-input v-model.number="form.currentX" /> <el-input v-model.number="form.currentX" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="当前列:" label-width="90px" prop="currentY"> <el-form-item label="当前列:" label-width="150px" prop="currentY">
<el-input v-model.number="form.currentY" /> <el-input v-model.number="form.currentY" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="当前层:" label-width="90px" prop="currentZ"> <el-form-item label="当前层:" label-width="150px" prop="currentZ">
<el-input v-model.number="form.currentZ" /> <el-input v-model.number="form.currentZ" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="出库缓存设备:" prop="cacheDeviceCode" label-width="130px"> <el-form-item label="出库缓存设备:" prop="cacheDeviceCode" label-width="150px">
<el-select <el-select
v-model="form.cacheDeviceCode" v-model="form.cacheDeviceCode"
filterable filterable
@ -138,7 +145,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="关联拣选台设备:" prop="pinkDeviceCode" label-width="130px"> <el-form-item label="关联拣选台设备:" prop="pinkDeviceCode" label-width="150px">
<el-select <el-select
v-model="form.pinkDeviceCode" v-model="form.pinkDeviceCode"
filterable filterable

8
nladmin-ui/src/views/acs/device/driver/with_station_device.vue

@ -50,6 +50,11 @@
<el-switch v-model="form.manual_create_task"/> <el-switch v-model="form.manual_create_task"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="申请任务" label-width="150px">
<el-switch v-model="form.applyTask"/>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -165,7 +170,8 @@ export default {
is_pickup: true, is_pickup: true,
is_release: true, is_release: true,
apply_time: '', apply_time: '',
link_device_code: [] link_device_code: [],
applyTask: false
}, },
rules: {} rules: {}
} }

Loading…
Cancel
Save