add:扫码驱动增加换标入库,以及异常取消任务等
This commit is contained in:
@@ -18,6 +18,8 @@ import org.nl.acs.device_driver.RouteableDeviceDriver;
|
|||||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||||
import org.nl.acs.device_driver.lk_conveyor.enums.*;
|
import org.nl.acs.device_driver.lk_conveyor.enums.*;
|
||||||
|
import org.nl.acs.device_driver.lk_manipulator.box_manipulator.BoxManipulatorDeviceDriver;
|
||||||
|
import org.nl.acs.device_driver.lk_manipulator.box_manipulator.InteractionJsonDTO;
|
||||||
import org.nl.acs.enums.StorageTypeEnum;
|
import org.nl.acs.enums.StorageTypeEnum;
|
||||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||||
import org.nl.acs.instruction.domain.Instruction;
|
import org.nl.acs.instruction.domain.Instruction;
|
||||||
@@ -39,6 +41,7 @@ import org.nl.config.language.LangProcess;
|
|||||||
import org.nl.config.lucene.service.LuceneExecuteLogService;
|
import org.nl.config.lucene.service.LuceneExecuteLogService;
|
||||||
import org.nl.config.lucene.service.dto.LuceneLogDto;
|
import org.nl.config.lucene.service.dto.LuceneLogDto;
|
||||||
import org.nl.system.service.param.ISysParamService;
|
import org.nl.system.service.param.ISysParamService;
|
||||||
|
import org.nl.system.service.param.dao.Param;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -64,6 +67,8 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
private final AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
|
private final AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
|
||||||
private final LuceneExecuteLogService logService = SpringContextHolder.getBean(LuceneExecuteLogService.class);
|
private final LuceneExecuteLogService logService = SpringContextHolder.getBean(LuceneExecuteLogService.class);
|
||||||
private final ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class);
|
private final ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class);
|
||||||
|
private static final List<Integer> CANCEL_TASK_ERROR_CODES = Arrays.asList(52, 53, 54, 55, 56);
|
||||||
|
private static final String CANCEL_TASK_DEVICES_PARAM = "belt_conveyor_error";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 心跳
|
* 心跳
|
||||||
@@ -150,6 +155,9 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
*/
|
*/
|
||||||
private int to_height_level = 0;
|
private int to_height_level = 0;
|
||||||
private int lastTo_height_level = 0;
|
private int lastTo_height_level = 0;
|
||||||
|
private int backup1 = 0;
|
||||||
|
private int lastBackup1 = 0;
|
||||||
|
private String lastCancelTaskInstructionCode = null;
|
||||||
/**
|
/**
|
||||||
* 手补托盘条码
|
* 手补托盘条码
|
||||||
*/
|
*/
|
||||||
@@ -199,6 +207,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
private String led_message;
|
private String led_message;
|
||||||
|
|
||||||
private static final Lock LOCK = new ReentrantLock();
|
private static final Lock LOCK = new ReentrantLock();
|
||||||
|
private static final float PLC_WEIGHT_UNIT_TO_KG = 100.0f;
|
||||||
|
|
||||||
public void setLog(String key, Object newValue, Object oldValue) {
|
public void setLog(String key, Object newValue, Object oldValue) {
|
||||||
if (!No_SET_LOG_KEYS.contains(key)) {
|
if (!No_SET_LOG_KEYS.contains(key)) {
|
||||||
@@ -211,9 +220,58 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
return this.device;
|
return this.device;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private float getWeightKg() {
|
||||||
|
if (this.weight <= 0 || Float.isNaN(this.weight) || Float.isInfinite(this.weight)) {
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
return this.weight / PLC_WEIGHT_UNIT_TO_KG;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean cancelTaskAndInstructionWhenError() {
|
||||||
|
if (null == this.barcode || "".equals(this.barcode)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!CANCEL_TASK_ERROR_CODES.contains(this.backup1)) {
|
||||||
|
this.lastCancelTaskInstructionCode = null;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (this.task <= 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
String instructionCode = String.valueOf(this.task);
|
||||||
|
if (StrUtil.equals(this.lastCancelTaskInstructionCode, instructionCode)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
Instruction inst = instructionService.findByCodeFromCache(instructionCode);
|
||||||
|
if (ObjectUtil.isEmpty(inst) || StrUtil.isBlank(inst.getTask_id())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
taskService.cancelAndInst(inst.getTask_id(), String.valueOf(this.backup1));
|
||||||
|
this.lastCancelTaskInstructionCode = instructionCode;
|
||||||
|
logService.deviceExecuteLog(new LuceneLogDto(this.currentDeviceCode, "backup1=" + this.backup1 + ",取消任务和指令,指令号:" + instructionCode + ",任务ID:" + inst.getTask_id()));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("{} backup1={} cancel task and instruction failed, instructionCode={}", this.currentDeviceCode, this.backup1, instructionCode, e);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isCancelTaskDevice() {
|
||||||
|
Param param = paramService.findByCode(CANCEL_TASK_DEVICES_PARAM);
|
||||||
|
if (ObjectUtil.isEmpty(param) || StrUtil.isBlank(param.getValue())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return StrUtil.split(param.getValue(), ',').stream()
|
||||||
|
.map(StrUtil::trim)
|
||||||
|
.anyMatch(deviceCode -> StrUtil.equals(deviceCode, this.currentDeviceCode));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
this.currentDeviceCode = this.getDevice().getDevice_code();
|
this.currentDeviceCode = this.getDevice().getDevice_code();
|
||||||
this.heartbeat = ItemProtocol.HEARTBEAT.getIntegerValue(this);
|
this.heartbeat = ItemProtocol.HEARTBEAT.getIntegerValue(this);
|
||||||
this.mode = ItemProtocol.MODE.getIntegerValue(this);
|
this.mode = ItemProtocol.MODE.getIntegerValue(this);
|
||||||
@@ -232,6 +290,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
this.to_task = ItemProtocol.TO_TASK.getIntegerValue(this);
|
this.to_task = ItemProtocol.TO_TASK.getIntegerValue(this);
|
||||||
this.to_container_type = ItemProtocol.TO_CONTAINER_TYPE.getIntegerValue(this);
|
this.to_container_type = ItemProtocol.TO_CONTAINER_TYPE.getIntegerValue(this);
|
||||||
this.to_height_level = ItemProtocol.TO_HEIGHT_LEVEL.getIntegerValue(this);
|
this.to_height_level = ItemProtocol.TO_HEIGHT_LEVEL.getIntegerValue(this);
|
||||||
|
this.backup1 = ItemProtocol.TO_BACK_UP_2.getIntegerValue(this);
|
||||||
if (this.heartbeat != this.lastHeartbeat) {
|
if (this.heartbeat != this.lastHeartbeat) {
|
||||||
this.setLog(ItemProtocol.HEARTBEAT.getKey(), this.heartbeat, this.lastHeartbeat);
|
this.setLog(ItemProtocol.HEARTBEAT.getKey(), this.heartbeat, this.lastHeartbeat);
|
||||||
}
|
}
|
||||||
@@ -287,12 +346,16 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
if (this.to_height_level != this.lastTo_height_level) {
|
if (this.to_height_level != this.lastTo_height_level) {
|
||||||
this.setLog(ItemProtocol.TO_HEIGHT_LEVEL.getKey(), this.to_height_level, this.lastTo_height_level);
|
this.setLog(ItemProtocol.TO_HEIGHT_LEVEL.getKey(), this.to_height_level, this.lastTo_height_level);
|
||||||
}
|
}
|
||||||
|
if (this.backup1 != this.lastBackup1) {
|
||||||
|
this.setLog(ItemProtocol.TO_BACK_UP_2.getKey(), this.backup1, this.lastBackup1);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.move != this.lastMove && this.move == 0 && this.lastMove == 1 && this.mode > 0) {
|
if (this.move != this.lastMove && this.move == 0 && this.lastMove == 1 && this.mode > 0) {
|
||||||
this.requireSuccess = false;
|
this.requireSuccess = false;
|
||||||
clearWrite();
|
clearWrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Boolean isApplyTask = Optional.ofNullable(this.getExtraValue().get("apply_task")).map(Object::toString).map(Boolean::parseBoolean).orElse(false);
|
||||||
if (this.move != 0 && this.task > 0) {
|
if (this.move != 0 && this.task > 0) {
|
||||||
update_instruction_status();
|
update_instruction_status();
|
||||||
}
|
}
|
||||||
@@ -309,8 +372,6 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
this.isError = false;
|
this.isError = false;
|
||||||
this.message = null;
|
this.message = null;
|
||||||
|
|
||||||
Boolean isApplyTask = Optional.ofNullable(this.getExtraValue().get("apply_task")).map(Object::toString).map(Boolean::parseBoolean).orElse(false);
|
|
||||||
|
|
||||||
//申请木箱装箱任务
|
//申请木箱装箱任务
|
||||||
if (this.mode == 6 && this.move > 0 && !this.requireSuccess) {
|
if (this.mode == 6 && this.move > 0 && !this.requireSuccess) {
|
||||||
if (!isApplyTask) {
|
if (!isApplyTask) {
|
||||||
@@ -327,14 +388,16 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
}
|
}
|
||||||
|
|
||||||
//子卷入库申请入库任务
|
//子卷入库申请入库任务
|
||||||
if (this.mode == 7 && this.move > 0 && !this.requireSuccess) {
|
if (this.mode == 7 && this.move > 0 && !this.requireSuccess)
|
||||||
|
{
|
||||||
if (!isApplyTask) {
|
if (!isApplyTask) {
|
||||||
this.writing(ItemProtocol.TO_COMMAND.getKey(), this.mode);
|
this.writing(ItemProtocol.TO_COMMAND.getKey(), this.mode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(hand_barcode) && StrUtil.isNotBlank(hand_material_barcode)) {
|
if (StrUtil.isNotBlank(hand_barcode) && StrUtil.isNotBlank(hand_material_barcode)) {
|
||||||
applyInByHand(StorageTypeEnum.STORAGE.getType(), this.mode);
|
applyInByHand(StorageTypeEnum.STORAGE.getType(), this.mode);
|
||||||
} else if (StrUtil.isNotBlank(this.barcode) && StrUtil.isNotBlank(this.material_barcode)) {
|
} else if (StrUtil.isNotBlank(this.barcode) && StrUtil.isNotBlank(this.material_barcode))
|
||||||
|
{
|
||||||
applyIn(StorageTypeEnum.STORAGE.getType(), this.mode);
|
applyIn(StorageTypeEnum.STORAGE.getType(), this.mode);
|
||||||
} else {
|
} else {
|
||||||
this.message = LangProcess.msg("310012");
|
this.message = LangProcess.msg("310012");
|
||||||
@@ -369,6 +432,26 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//申请换标入库
|
||||||
|
if (this.mode == 28 && this.move > 0
|
||||||
|
&& "CK1123".equals(this.currentDeviceCode)
|
||||||
|
&& ObjectUtil.isNotEmpty(this.height)
|
||||||
|
&& !this.requireSuccess) {
|
||||||
|
if (!isApplyTask) {
|
||||||
|
this.writing(ItemProtocol.TO_COMMAND.getKey(), this.mode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(this.hand_barcode) && StrUtil.isNotBlank(this.hand_material_barcode)) {
|
||||||
|
applyBoxReturnTask(StorageTypeEnum.CHANGE_LABEL_IN.getType(), this.mode);
|
||||||
|
}
|
||||||
|
else if (StrUtil.isNotBlank(this.barcode) && StrUtil.isNotBlank(this.material_barcode))
|
||||||
|
{
|
||||||
|
applyBoxReturnTask(StorageTypeEnum.CHANGE_LABEL_IN.getType(), this.mode);
|
||||||
|
} else {
|
||||||
|
this.message = LangProcess.msg("310012");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//申请高度
|
//申请高度
|
||||||
if (this.mode == 23 && this.move > 0 && !this.requireSuccess) {
|
if (this.mode == 23 && this.move > 0 && !this.requireSuccess) {
|
||||||
if (StrUtil.isNotBlank(this.hand_barcode) && StrUtil.isNotBlank(this.hand_material_barcode)) {
|
if (StrUtil.isNotBlank(this.hand_barcode) && StrUtil.isNotBlank(this.hand_material_barcode)) {
|
||||||
@@ -379,6 +462,32 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
this.message = LangProcess.msg("310012");
|
this.message = LangProcess.msg("310012");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//退货异常申请桁架任务
|
||||||
|
if (this.mode == 24 && this.move > 0 && !this.requireSuccess) {
|
||||||
|
if (this.container_type == 0) {
|
||||||
|
this.message = LangProcess.msg("310001");
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
if (isApplyTask) {
|
||||||
|
if(cancelTaskAndInstructionWhenError())
|
||||||
|
{
|
||||||
|
Device mxrkhj = deviceAppService.findDeviceByCode("MXRKHJ");
|
||||||
|
BoxManipulatorDeviceDriver deviceDriver = (BoxManipulatorDeviceDriver)mxrkhj.getDeviceDriver();
|
||||||
|
if (ObjectUtil.isNotEmpty(deviceDriver.getPosition_move1()) && 0 == deviceDriver.getPosition_move1())
|
||||||
|
{
|
||||||
|
applyEmptyTask(StorageTypeEnum.BOX_RETURN_HJ.getType(), this.mode);
|
||||||
|
}
|
||||||
|
if (1 == deviceDriver.getPosition_move1())
|
||||||
|
{
|
||||||
|
this.message = "异常位置有货";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.writing(ItemProtocol.TO_COMMAND.getKey(), this.mode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//申请入库指令、异常位指令,指令下发
|
//申请入库指令、异常位指令,指令下发
|
||||||
if (this.mode == 2 && this.move > 0 && !this.requireSuccess) {
|
if (this.mode == 2 && this.move > 0 && !this.requireSuccess) {
|
||||||
@@ -401,6 +510,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
this.lastTo_target = this.to_target;
|
this.lastTo_target = this.to_target;
|
||||||
this.lastTo_task = this.to_task;
|
this.lastTo_task = this.to_task;
|
||||||
this.lastTo_container_type = this.to_container_type;
|
this.lastTo_container_type = this.to_container_type;
|
||||||
|
this.lastBackup1 = this.backup1;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.unExecutedMessage = LangProcess.msg("1005");
|
this.unExecutedMessage = LangProcess.msg("1005");
|
||||||
logService.deviceExecuteLog(new LuceneLogDto(this.currentDeviceCode, "当前设备执行逻辑报错, 错误详情: " + e.getMessage() + ", 错误堆栈信息: " + Arrays.toString(e.getStackTrace())));
|
logService.deviceExecuteLog(new LuceneLogDto(this.currentDeviceCode, "当前设备执行逻辑报错, 错误详情: " + e.getMessage() + ", 错误堆栈信息: " + Arrays.toString(e.getStackTrace())));
|
||||||
@@ -409,6 +519,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void applyErrorHeight() {
|
private void applyErrorHeight() {
|
||||||
long currentTimeMillis = System.currentTimeMillis();
|
long currentTimeMillis = System.currentTimeMillis();
|
||||||
if (!isTimeValid(currentTimeMillis)) {
|
if (!isTimeValid(currentTimeMillis)) {
|
||||||
@@ -458,7 +569,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
if (StrUtil.isNotEmpty(this.hand_barcode)) {
|
if (StrUtil.isNotEmpty(this.hand_barcode)) {
|
||||||
param.put("vehicle_code", this.hand_barcode);
|
param.put("vehicle_code", this.hand_barcode);
|
||||||
} else {
|
} else {
|
||||||
if (StrUtil.isNotEmpty(this.barcode) && (this.barcode.startsWith("A") || this.barcode.startsWith("B"))) {
|
if (StrUtil.isNotEmpty(this.barcode) && (this.barcode.startsWith("Y") || this.barcode.startsWith("A") || this.barcode.startsWith("B"))) {
|
||||||
param.put("vehicle_code", this.barcode);
|
param.put("vehicle_code", this.barcode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -470,6 +581,9 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
param.put("type", type);
|
param.put("type", type);
|
||||||
|
if (mode == 28){
|
||||||
|
param.put("height_level",this.height);
|
||||||
|
}
|
||||||
TaskDto dto = taskService.findByBarcodeFromCache(barcode);
|
TaskDto dto = taskService.findByBarcodeFromCache(barcode);
|
||||||
if (ObjectUtil.isNotEmpty(dto)) {
|
if (ObjectUtil.isNotEmpty(dto)) {
|
||||||
this.writing(ItemProtocol.TO_COMMAND.getKey(), 1);
|
this.writing(ItemProtocol.TO_COMMAND.getKey(), 1);
|
||||||
@@ -479,7 +593,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
if (httpResponse != null) {
|
if (httpResponse != null) {
|
||||||
JSONObject resp = JSONObject.parseObject(httpResponse.body());
|
JSONObject resp = JSONObject.parseObject(httpResponse.body());
|
||||||
if (resp != null && resp.getIntValue("status") == 200) {
|
if (resp != null && resp.getIntValue("status") == 200) {
|
||||||
this.writing(ItemProtocol.TO_COMMAND.getKey(), mode);
|
this.writing(ItemProtocol.TO_COMMAND.getKey(), mode);
|
||||||
this.requireSuccess = true;
|
this.requireSuccess = true;
|
||||||
} else {
|
} else {
|
||||||
this.message = LangProcess.msg("310002");
|
this.message = LangProcess.msg("310002");
|
||||||
@@ -509,7 +623,8 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
if (StrUtil.isNotEmpty(this.hand_barcode)) {
|
if (StrUtil.isNotEmpty(this.hand_barcode)) {
|
||||||
param.put("vehicle_code", this.hand_barcode);
|
param.put("vehicle_code", this.hand_barcode);
|
||||||
} else {
|
} else {
|
||||||
if (StrUtil.isNotEmpty(this.barcode) && (this.barcode.startsWith("A") || this.barcode.startsWith("B"))) {
|
if (StrUtil.isNotEmpty(this.barcode) && this.barcode.startsWith("Y"))
|
||||||
|
{
|
||||||
param.put("vehicle_code", this.barcode);
|
param.put("vehicle_code", this.barcode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -539,12 +654,12 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
this.requireTime = currentTimeMillis;
|
this.requireTime = currentTimeMillis;
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("device_code", this.currentDeviceCode);
|
param.put("device_code", this.currentDeviceCode);
|
||||||
if (this.barcode.startsWith("A") || this.barcode.startsWith("B")) {
|
if (this.barcode.startsWith("Y")) {
|
||||||
param.put("vehicle_code", this.barcode);
|
param.put("vehicle_code", this.barcode);
|
||||||
}
|
}
|
||||||
param.put("material_barcode", this.material_barcode);
|
param.put("material_barcode", this.material_barcode);
|
||||||
if (mode == 7 && this.weight != 0) {
|
if (mode == 7) {
|
||||||
param.put("weight", this.weight);
|
param.put("weight", this.getWeightKg());
|
||||||
}
|
}
|
||||||
param.put("type", type);
|
param.put("type", type);
|
||||||
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
||||||
@@ -572,8 +687,8 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
param.put("device_code", this.currentDeviceCode);
|
param.put("device_code", this.currentDeviceCode);
|
||||||
param.put("vehicle_code", this.hand_barcode);
|
param.put("vehicle_code", this.hand_barcode);
|
||||||
param.put("material_barcode", this.hand_material_barcode);
|
param.put("material_barcode", this.hand_material_barcode);
|
||||||
if (mode == 7 && this.weight != 0) {
|
if (mode == 7) {
|
||||||
param.put("weight", this.weight);
|
param.put("weight", this.getWeightKg());
|
||||||
}
|
}
|
||||||
param.put("type", type);
|
param.put("type", type);
|
||||||
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
||||||
@@ -646,7 +761,6 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
}
|
}
|
||||||
return pathlist.get(index);
|
return pathlist.get(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求指令
|
* 请求指令
|
||||||
*/
|
*/
|
||||||
@@ -690,10 +804,13 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TaskDto taskDto = taskService.findByVehicleCodeCodeAndReady(queryBarcode);
|
TaskDto taskDto = taskService.findByVehicleCodeCodeAndReady(queryBarcode);
|
||||||
if (ObjectUtil.isNotEmpty(taskDto)) {
|
if (ObjectUtil.isNotEmpty(taskDto))
|
||||||
|
{
|
||||||
String next_device_code = null;
|
String next_device_code = null;
|
||||||
String assignedDeviceCode = taskService.queryAssignedByDevice(this.currentDeviceCode, taskDto.getNext_device_code());
|
String assignedDeviceCode = null;
|
||||||
if (StrUtil.isEmpty(assignedDeviceCode)) {
|
//String assignedDeviceCode = taskService.queryAssignedByDevice(this.currentDeviceCode, taskDto.getNext_device_code());
|
||||||
|
if (StrUtil.isEmpty(assignedDeviceCode))
|
||||||
|
{
|
||||||
next_device_code = this.getNextDeviceCode(taskDto);
|
next_device_code = this.getNextDeviceCode(taskDto);
|
||||||
if (next_device_code == null) {
|
if (next_device_code == null) {
|
||||||
this.unExecutedMessage = taskDto.getStart_device_code() + "->" + next_device_code + LangProcess.msg("1009");
|
this.unExecutedMessage = taskDto.getStart_device_code() + "->" + next_device_code + LangProcess.msg("1009");
|
||||||
@@ -708,7 +825,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<String> targetDeviceCode = this.getExtraDeviceCodes("targetDeviceCode");
|
List<String> targetDeviceCode = this.getExtraDeviceCodes("targetDeviceCode");
|
||||||
if (!targetDeviceCode.contains(inst.getNext_device_code())) {
|
if (!targetDeviceCode.contains(next_device_code)) {
|
||||||
this.unExecutedMessage = LangProcess.msg("310006");
|
this.unExecutedMessage = LangProcess.msg("310006");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -718,19 +835,42 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Instruction instDto = new Instruction();
|
Instruction instDto = new Instruction();
|
||||||
try {
|
try
|
||||||
|
{
|
||||||
packageInst(instDto, taskDto, next_device_code);
|
packageInst(instDto, taskDto, next_device_code);
|
||||||
instructionService.create(instDto);
|
instructionService.create(instDto);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.unExecutedMessage = LangProcess.msg("1006");
|
this.unExecutedMessage = LangProcess.msg("1006");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex());
|
InteractionJsonDTO interactionJsonDTO = JSON.parseObject(taskDto.getInteraction_json(), InteractionJsonDTO.class);
|
||||||
taskService.update(taskDto);
|
List<String> keys = new ArrayList<>(Arrays.asList(ItemProtocol.TO_TARGET.getKey(), ItemProtocol.TO_TASK.getKey(), ItemProtocol.TO_COMMAND.getKey()));
|
||||||
List<String> keys = Arrays.asList(ItemProtocol.TO_TARGET.getKey(), ItemProtocol.TO_TASK.getKey(), ItemProtocol.TO_COMMAND.getKey());
|
List<Object> values = new ArrayList<>(Arrays.asList(this.getTargetAddress(next_device), Integer.parseInt(instDto.getInstruction_code()), 1));
|
||||||
List<Object> values = Arrays.asList(this.getTargetAddress(next_device), Integer.parseInt(inst.getInstruction_code()), 1);
|
if (ObjectUtil.isNotEmpty(interactionJsonDTO))
|
||||||
|
{
|
||||||
|
String containerType = interactionJsonDTO.getContainerType();
|
||||||
|
if (StrUtil.isNotBlank(containerType)) {
|
||||||
|
keys.add(ItemProtocol.TO_CONTAINER_TYPE.getKey());
|
||||||
|
values.add(Integer.parseInt(containerType));
|
||||||
|
}
|
||||||
|
String heightLevel = interactionJsonDTO.getHeightLevel();
|
||||||
|
if (StrUtil.isNotBlank(heightLevel)) {
|
||||||
|
keys.add(ItemProtocol.TO_HEIGHT_LEVEL.getKey());
|
||||||
|
values.add(Integer.parseInt(heightLevel));
|
||||||
|
}
|
||||||
|
if ("3".equals(interactionJsonDTO.getType()))
|
||||||
|
{
|
||||||
|
String type = interactionJsonDTO.getType();
|
||||||
|
if (StrUtil.isNotBlank(type)) {
|
||||||
|
keys.add(ItemProtocol.TO_BACK_UP_1.getKey());
|
||||||
|
values.add(Integer.parseInt(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
this.writing(keys, values);
|
this.writing(keys, values);
|
||||||
this.requireSuccess = true;
|
this.requireSuccess = true;
|
||||||
|
taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex());
|
||||||
|
taskService.update(taskDto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver
|
|||||||
/**
|
/**
|
||||||
* 物料编码
|
* 物料编码
|
||||||
*/
|
*/
|
||||||
private String material_barcode = null;
|
private String to_material_barcode = null;
|
||||||
private String lastMaterial_barcode = null;
|
private String lastMaterial_barcode = null;
|
||||||
/**
|
/**
|
||||||
* 载具类型
|
* 载具类型
|
||||||
@@ -204,7 +204,7 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver
|
|||||||
this.container_type = ItemProtocol.CONTAINER_TYPE.getIntegerValue(this);
|
this.container_type = ItemProtocol.CONTAINER_TYPE.getIntegerValue(this);
|
||||||
this.carrier_direction = ItemProtocol.CARRIER_DIRECTION.getIntegerValue(this);
|
this.carrier_direction = ItemProtocol.CARRIER_DIRECTION.getIntegerValue(this);
|
||||||
this.task = ItemProtocol.TASK.getIntegerValue(this);
|
this.task = ItemProtocol.TASK.getIntegerValue(this);
|
||||||
this.material_barcode = ItemProtocol.MATERIAL_CODE.getStringValue(this);
|
this.to_material_barcode = ItemProtocol.TO_MATERIAL_CODE.getStringValue(this);
|
||||||
this.to_command = ItemProtocol.TO_COMMAND.getIntegerValue(this);
|
this.to_command = ItemProtocol.TO_COMMAND.getIntegerValue(this);
|
||||||
this.to_target = ItemProtocol.TO_TARGET.getIntegerValue(this);
|
this.to_target = ItemProtocol.TO_TARGET.getIntegerValue(this);
|
||||||
this.to_task = ItemProtocol.TO_TASK.getIntegerValue(this);
|
this.to_task = ItemProtocol.TO_TASK.getIntegerValue(this);
|
||||||
@@ -235,8 +235,8 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver
|
|||||||
if (this.carrier_direction != this.lastCarrier_direction) {
|
if (this.carrier_direction != this.lastCarrier_direction) {
|
||||||
this.setLog(ItemProtocol.CARRIER_DIRECTION.getKey(), this.carrier_direction, this.lastCarrier_direction);
|
this.setLog(ItemProtocol.CARRIER_DIRECTION.getKey(), this.carrier_direction, this.lastCarrier_direction);
|
||||||
}
|
}
|
||||||
if (!StrUtil.equals(this.material_barcode, this.lastMaterial_barcode)) {
|
if (!StrUtil.equals(this.to_material_barcode, this.lastMaterial_barcode)) {
|
||||||
this.setLog(ItemProtocol.MATERIAL_CODE.getKey(), this.material_barcode, this.lastMaterial_barcode);
|
this.setLog(ItemProtocol.TO_MATERIAL_CODE.getKey(), this.to_material_barcode, this.lastMaterial_barcode);
|
||||||
}
|
}
|
||||||
if (this.task != this.lastTask) {
|
if (this.task != this.lastTask) {
|
||||||
this.setLog(ItemProtocol.TASK.getKey(), this.task, this.lastTask);
|
this.setLog(ItemProtocol.TASK.getKey(), this.task, this.lastTask);
|
||||||
@@ -295,7 +295,7 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver
|
|||||||
this.lastContainer_type = this.container_type;
|
this.lastContainer_type = this.container_type;
|
||||||
this.lastCarrier_direction = this.carrier_direction;
|
this.lastCarrier_direction = this.carrier_direction;
|
||||||
this.lastTask = this.task;
|
this.lastTask = this.task;
|
||||||
this.lastMaterial_barcode = this.material_barcode;
|
this.lastMaterial_barcode = this.to_material_barcode;
|
||||||
this.lastTo_command = this.to_command;
|
this.lastTo_command = this.to_command;
|
||||||
this.lastTo_target = this.to_target;
|
this.lastTo_target = this.to_target;
|
||||||
this.lastTo_task = this.to_task;
|
this.lastTo_task = this.to_task;
|
||||||
@@ -324,13 +324,21 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver
|
|||||||
String response = acsToWmsService.getIsUncap(param);
|
String response = acsToWmsService.getIsUncap(param);
|
||||||
JSONObject jo = JSON.parseObject(response);
|
JSONObject jo = JSON.parseObject(response);
|
||||||
if (jo.getIntValue("status") == 200) {
|
if (jo.getIntValue("status") == 200) {
|
||||||
|
String material_code = jo.getString("material_barcode");
|
||||||
Integer length = jo.getInteger("boxLength");
|
Integer length = jo.getInteger("boxLength");
|
||||||
Integer weight = jo.getInteger("boxWidth");
|
Integer weight = jo.getInteger("boxWidth");
|
||||||
Integer height = jo.getInteger("boxHigh");
|
Integer height = jo.getInteger("boxHigh");
|
||||||
Integer desiccant = jo.getInteger("desiccantTemplate");
|
Integer desiccant = jo.getInteger("desiccantTemplate");
|
||||||
Integer type = jo.getInteger("type");
|
Integer type = jo.getInteger("type");
|
||||||
List<String> keys = Arrays.asList(ItemProtocol.TO_LENGTH.getKey(), ItemProtocol.TO_WIDTH.getKey(), ItemProtocol.TO_HEIGHT.getKey(), ItemProtocol.TO_DESICCANT.getKey(), ItemProtocol.TO_TYPE.getKey());
|
List<String> keys = new ArrayList<>(Arrays.asList(
|
||||||
List<Object> values = Arrays.asList(length, weight, height, desiccant, type);
|
ItemProtocol.TO_LENGTH.getKey(),
|
||||||
|
ItemProtocol.TO_WIDTH.getKey(),
|
||||||
|
ItemProtocol.TO_HEIGHT.getKey(),
|
||||||
|
ItemProtocol.TO_DESICCANT.getKey(),
|
||||||
|
ItemProtocol.TO_TYPE.getKey(),
|
||||||
|
ItemProtocol.TO_MATERIAL_CODE.getKey())
|
||||||
|
);
|
||||||
|
List<Object> values = new ArrayList<>(Arrays.asList(length, weight, height, desiccant, type,material_code));
|
||||||
this.writing(keys, values);
|
this.writing(keys, values);
|
||||||
String isUncap = jo.getString("isUncap");
|
String isUncap = jo.getString("isUncap");
|
||||||
if ("1".equals(isUncap)) {
|
if ("1".equals(isUncap)) {
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public class TrappedManipulatorDefination implements OpcDeviceDriverDefination {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDriverDescription() {
|
public String getDriverDescription() {
|
||||||
return "一楼出库区堆叠桁";
|
return "一楼出库区堆叠桁架";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -350,7 +350,8 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
|||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) {
|
if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) {
|
||||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_update_time_out);
|
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_update_time_out);
|
||||||
} else {
|
} else
|
||||||
|
{
|
||||||
this.instruction_update_time = date;
|
this.instruction_update_time = date;
|
||||||
//更改指令状态
|
//更改指令状态
|
||||||
if (task > 0 && !Objects.equals(command, last_command)) {
|
if (task > 0 && !Objects.equals(command, last_command)) {
|
||||||
@@ -422,18 +423,10 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
|||||||
map.put("code", "to_y");
|
map.put("code", "to_y");
|
||||||
map.put("value", inst.getTo_z());
|
map.put("value", inst.getTo_z());
|
||||||
list.add(map);
|
list.add(map);
|
||||||
if (inst.getTo_x().length() > 1 && !compile.matcher(inst.getTo_x()).matches()) {
|
Map<String, Object> map2 = new HashMap<>();
|
||||||
String substring = inst.getTo_x().substring(1);
|
map2.put("code", "to_z");
|
||||||
Map<String, Object> map1 = new HashMap<>();
|
map2.put("value", inst.getTo_x());
|
||||||
map1.put("code", "to_z");
|
list.add(map2);
|
||||||
map1.put("value", substring);
|
|
||||||
list.add(map1);
|
|
||||||
} else {
|
|
||||||
Map<String, Object> map2 = new HashMap<>();
|
|
||||||
map2.put("code", "to_z");
|
|
||||||
map2.put("value", inst.getTo_x());
|
|
||||||
list.add(map2);
|
|
||||||
}
|
|
||||||
Map<String, Object> map3 = new HashMap<>();
|
Map<String, Object> map3 = new HashMap<>();
|
||||||
map3.put("code", "to_x");
|
map3.put("code", "to_x");
|
||||||
map3.put("value", inst.getTo_y());
|
map3.put("value", inst.getTo_y());
|
||||||
@@ -641,7 +634,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//空出
|
||||||
if (error == 6) {
|
if (error == 6) {
|
||||||
try {
|
try {
|
||||||
updateEXcuteMessage(error.toString());
|
updateEXcuteMessage(error.toString());
|
||||||
@@ -1089,7 +1082,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
|||||||
Instruction instruction1 = new Instruction();
|
Instruction instruction1 = new Instruction();
|
||||||
instruction1.setInstruction_status("0");
|
instruction1.setInstruction_status("0");
|
||||||
List<Instruction> instructions = instructionService.findByDeviceCodes(instruction1, false);
|
List<Instruction> instructions = instructionService.findByDeviceCodes(instruction1, false);
|
||||||
if (CollUtil.isEmpty(instructions) || instructions.size() < 1) {
|
if (CollUtil.isEmpty(instructions) || instructions.isEmpty()) {
|
||||||
this.notCreateInstMessage = "未找到任务";
|
this.notCreateInstMessage = "未找到任务";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1105,7 +1098,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
|||||||
for (RouteLineDto routeLineDto : routeLineDtos) {
|
for (RouteLineDto routeLineDto : routeLineDtos) {
|
||||||
if (this.getDeviceCode().equals(routeLineDto.getNext_device_code())) {
|
if (this.getDeviceCode().equals(routeLineDto.getNext_device_code())) {
|
||||||
List<RouteLineDto> routeLineDtoList = routeLineService.selectDeviceCodeList(this.getDeviceCode());
|
List<RouteLineDto> routeLineDtoList = routeLineService.selectDeviceCodeList(this.getDeviceCode());
|
||||||
if (CollUtil.isEmpty(routeLineDtos) || routeLineDtos.size() < 1) {
|
if (CollUtil.isEmpty(routeLineDtoList) || routeLineDtoList.size() < 1) {
|
||||||
message = "one_message6";
|
message = "one_message6";
|
||||||
logServer.deviceExecuteLog(this.currentDeviceCode, "", "", "没有" + instruction.getStart_device_code() + "->"
|
logServer.deviceExecuteLog(this.currentDeviceCode, "", "", "没有" + instruction.getStart_device_code() + "->"
|
||||||
+ this.currentDeviceCode + "的路由");
|
+ this.currentDeviceCode + "的路由");
|
||||||
@@ -1286,18 +1279,12 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
|||||||
map4.put("code", "to_y");
|
map4.put("code", "to_y");
|
||||||
map4.put("value", inst.getFrom_z());
|
map4.put("value", inst.getFrom_z());
|
||||||
list.add(map4);
|
list.add(map4);
|
||||||
if (inst.getFrom_x().length() > 1) {
|
|
||||||
String substring = inst.getFrom_x().substring(1);
|
HashMap map6 = new HashMap();
|
||||||
HashMap map5 = new HashMap();
|
map6.put("code", "to_z");
|
||||||
map5.put("code", "to_z");
|
map6.put("value", inst.getFrom_x());
|
||||||
map5.put("value", substring);
|
list.add(map6);
|
||||||
list.add(map5);
|
|
||||||
} else {
|
|
||||||
HashMap map6 = new HashMap();
|
|
||||||
map6.put("code", "to_z");
|
|
||||||
map6.put("value", inst.getFrom_x());
|
|
||||||
list.add(map6);
|
|
||||||
}
|
|
||||||
HashMap map7 = new HashMap();
|
HashMap map7 = new HashMap();
|
||||||
map7.put("code", "to_x");
|
map7.put("code", "to_x");
|
||||||
map7.put("value", inst.getFrom_y());
|
map7.put("value", inst.getFrom_y());
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
|||||||
Map<String, RoutePlanDto> routePlans = new HashMap<>();
|
Map<String, RoutePlanDto> routePlans = new HashMap<>();
|
||||||
Map<Integer, String> routeIndex = new HashMap<>();
|
Map<Integer, String> routeIndex = new HashMap<>();
|
||||||
Map<String, List> routeLines = new HashMap();
|
Map<String, List> routeLines = new HashMap();
|
||||||
|
private volatile Map<String, List<RouteLineDto>> routeLineDeviceCodeCache = new HashMap<>();
|
||||||
/**
|
/**
|
||||||
* 用来确定设备在 路由二维数组中的坐标
|
* 用来确定设备在 路由二维数组中的坐标
|
||||||
*/
|
*/
|
||||||
@@ -347,7 +348,7 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -539,6 +540,7 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
|||||||
Object[] param = new Object[0];
|
Object[] param = new Object[0];
|
||||||
Map map = new HashMap();
|
Map map = new HashMap();
|
||||||
List<RoutePlanDto> routePlans = this.routePlanService.queryAll(map);
|
List<RoutePlanDto> routePlans = this.routePlanService.queryAll(map);
|
||||||
|
refreshRouteLineDeviceCodeCache();
|
||||||
Iterator<RoutePlanDto> var2 = routePlans.iterator();
|
Iterator<RoutePlanDto> var2 = routePlans.iterator();
|
||||||
while (var2.hasNext()) {
|
while (var2.hasNext()) {
|
||||||
RoutePlanDto routePlan = var2.next();
|
RoutePlanDto routePlan = var2.next();
|
||||||
@@ -592,6 +594,17 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void refreshRouteLineDeviceCodeCache() {
|
||||||
|
List<RouteLineDto> routeLineDtos = ConvertUtil.convertList(routeLineMapper.selectList(Wrappers.lambdaQuery(RouteLine.class)), RouteLineDto.class);
|
||||||
|
Map<String, List<RouteLineDto>> cache = new HashMap<>();
|
||||||
|
if (ObjectUtil.isNotEmpty(routeLineDtos)) {
|
||||||
|
cache = routeLineDtos.stream()
|
||||||
|
.filter(routeLineDto -> StrUtil.isNotEmpty(routeLineDto.getDevice_code()))
|
||||||
|
.collect(Collectors.groupingBy(RouteLineDto::getDevice_code));
|
||||||
|
}
|
||||||
|
this.routeLineDeviceCodeCache = cache;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkRouteLine(String startDevice, String nextDevice, String plan_code) throws Exception {
|
public boolean checkRouteLine(String startDevice, String nextDevice, String plan_code) throws Exception {
|
||||||
//判断起点终点设备类型
|
//判断起点终点设备类型
|
||||||
@@ -734,15 +747,8 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
|||||||
@Override
|
@Override
|
||||||
public List<RouteLineDto> selectDeviceCodeList(String device_code) {
|
public List<RouteLineDto> selectDeviceCodeList(String device_code) {
|
||||||
if (StrUtil.isEmpty(device_code)) {
|
if (StrUtil.isEmpty(device_code)) {
|
||||||
return null;
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
List<RouteLine> routeLines = routeLineMapper.selectList(Wrappers.lambdaQuery(RouteLine.class).
|
return Optional.ofNullable(routeLineDeviceCodeCache.get(device_code)).orElse(Collections.emptyList());
|
||||||
eq(RouteLine::getDevice_code, device_code));
|
|
||||||
List<RouteLineDto> routeLineDtos = new ArrayList<>();
|
|
||||||
for (RouteLine routeLine : routeLines) {
|
|
||||||
RouteLineDto convert = ConvertUtil.convert(routeLine, RouteLineDto.class);
|
|
||||||
routeLineDtos.add(convert);
|
|
||||||
}
|
|
||||||
return routeLineDtos;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user