fix: 扫码位报警重新下发plc、异步写lucence
This commit is contained in:
@@ -753,6 +753,10 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
TaskDto taskdto = taskserver.findByVehicleCodeCodeAndReady(hand_barcode);
|
||||
if (!ObjectUtil.isEmpty(taskdto)) {
|
||||
if (creatInstruction(taskdto)) return false;
|
||||
} else {
|
||||
//如果不存在则直接找对应指令直接下发信号
|
||||
if (pushPLC()) return false;
|
||||
|
||||
}
|
||||
} else {
|
||||
if (StrUtil.isNotBlank(barcode)) {
|
||||
@@ -760,6 +764,10 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
TaskDto taskdto = taskserver.findByVehicleCodeCodeAndReady(barcode);
|
||||
if (!ObjectUtil.isEmpty(taskdto)) {
|
||||
if (creatInstruction(taskdto)) return false;
|
||||
}else {
|
||||
//如果不存在则直接找对应指令直接下发信号
|
||||
if (pushPLC()) return false;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -767,6 +775,52 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
}
|
||||
}
|
||||
|
||||
private boolean pushPLC() {
|
||||
Instruction inst = instructionService.findByDeviceCodeFromCache(this.device_code);
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Device nextdevice = deviceAppservice.findDeviceByCode(inst.getNext_device_code());
|
||||
String next_addr = nextdevice.getExtraValue().get("address").toString();
|
||||
|
||||
List list = new ArrayList();
|
||||
Map map = new HashMap();
|
||||
map.put("code", "to_target");
|
||||
map.put("value", next_addr);
|
||||
list.add(map);
|
||||
Map map2 = new HashMap();
|
||||
map2.put("code", "to_task");
|
||||
map2.put("value", inst.getInstruction_code());
|
||||
list.add(map2);
|
||||
Map map3 = new HashMap();
|
||||
map3.put("code", "to_command");
|
||||
map3.put("value", "1");
|
||||
list.add(map3);
|
||||
this.writing(list);
|
||||
requireSucess = true;
|
||||
while (!StrUtil.equals(this.getOpcValueAccessor().getValue(this.getOpcServer() + "." + this.getOpcPlc() + "." + this.getDevice_code() + ".task").toString()
|
||||
, inst.getInstruction_code())) {
|
||||
this.writing(list);
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content(device_code + inst.getInstruction_code() + "再次下发电气信号")
|
||||
.build();
|
||||
logDto.setLog_level(3);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
try {
|
||||
Thread.sleep(500);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (ObjectUtil.isEmpty(instructionService.findByDeviceCodeFromCache(this.device_code))) {
|
||||
requireSucess = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean creatInstruction(TaskDto taskdto) {
|
||||
String taskid = taskdto.getTask_id();
|
||||
String taskcode = taskdto.getTask_code();
|
||||
@@ -814,7 +868,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
BeltConveyorDeviceDriver linkDeviceDriver;
|
||||
if (linkDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) {
|
||||
linkDeviceDriver = (BeltConveyorDeviceDriver) linkDevice.getDeviceDriver();
|
||||
if ((beltConveyorDeviceDriver.getMode() == 0 || beltConveyorDeviceDriver.getMove() == 1) && (linkDeviceDriver.getMode() == 0 || linkDeviceDriver.getMove() == 1)) {
|
||||
if ((beltConveyorDeviceDriver.getMode() == 0 || beltConveyorDeviceDriver.getMove() == 1) || (linkDeviceDriver.getMode() == 0 || linkDeviceDriver.getMove() == 1)) {
|
||||
this.message = "DDJ对接位或关联输送线存在正在移动的货物或者未联机";
|
||||
requireSucess = false;
|
||||
return true;
|
||||
|
||||
@@ -290,7 +290,7 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi
|
||||
param.put("actionType",actionType );
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("行架取放货完成请求lms,参数:" + task + "--" +ActionTypeEnum.RELEASE_FINISHING.getStatus())
|
||||
.content("行架取放货完成请求lms,参数:" + task + "--" +ActionTypeEnum.getStatus(actionType))
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
|
||||
@@ -203,7 +203,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC
|
||||
if (!UnifiedDataAppService.isEquals(value, his)) {
|
||||
OpcItemDto itemDto = this.getItem(itemId);
|
||||
if (true) {
|
||||
// this.logItemChanged(itemId, accessor_value, value, itemDto);
|
||||
this.logItemChanged(itemId, accessor_value, value, itemDto);
|
||||
}
|
||||
if(!ObjectUtil.isEmpty(value) || "".equals(value)){
|
||||
accessor_value.setValue(itemId, value);
|
||||
|
||||
@@ -37,7 +37,11 @@ public class AsyncLuceneAppender extends AspectLogbackAsyncAppender {
|
||||
}
|
||||
MDC.clear();
|
||||
}
|
||||
super.append(event);
|
||||
try {
|
||||
super.append(event);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
</appender>
|
||||
|
||||
<!--异步到文件-->
|
||||
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||
<appender name="asyncAppenter" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
|
||||
Reference in New Issue
Block a user