rev:一楼优化
This commit is contained in:
@@ -2131,7 +2131,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//x坐标
|
||||
x = ikey;
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "x坐标:" + x)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
@@ -2140,7 +2140,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//y坐标
|
||||
y = ikey;
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "y坐标:" + y)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
@@ -2149,7 +2149,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//车辆角度
|
||||
angle = ikey;
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "车辆角度:" + angle)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
@@ -2158,7 +2158,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//agv电量
|
||||
electric_qty = ikey;
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "agv电量:" + electric_qty)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
@@ -2167,7 +2167,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
//三色灯状态
|
||||
status = ikey;
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.device_code(this.getDeviceCode())
|
||||
.content("agvphase:" + phase + "三色灯状态:" + status)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
||||
@@ -179,6 +180,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
Instruction inst = null;
|
||||
|
||||
String material = null;
|
||||
String vehicle_code2;
|
||||
|
||||
Boolean isonline = true;
|
||||
|
||||
@@ -246,6 +248,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
if (move != 0 && task > 0) {
|
||||
if (null != inst) {
|
||||
inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code();
|
||||
vehicle_code2 = inst.getVehicle_code2();
|
||||
}
|
||||
CompletableFuture.runAsync(() -> {
|
||||
// 异步更新指令状态
|
||||
@@ -417,13 +420,17 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
String response = acsToWmsService.applyTwo(param);
|
||||
JSONObject jo = JSON.parseObject(response);
|
||||
message = "申请空托盘出入库,返回参数:" + jo;
|
||||
if (jo.getInteger("status") == 200) {
|
||||
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
||||
JSONObject jsonObject = null;
|
||||
if(ObjectUtil.isNotEmpty(httpResponse)){
|
||||
String body = httpResponse.body();
|
||||
jsonObject = JSONObject.parseObject(body);
|
||||
}
|
||||
message = "申请空托盘出入库,返回参数:" + jsonObject;
|
||||
if (ObjectUtil.isNotNull(jsonObject) && jsonObject.getInteger("status") == 200) {
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请空托盘出入库,参数,接口返回:" + jo)
|
||||
.content("申请空托盘出入库,参数,接口返回:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
@@ -436,10 +443,10 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
this.requireSucess = true;
|
||||
} else {
|
||||
this.iserror = true;
|
||||
message = "申请空托盘出入库出错,返回参数:" + jo;
|
||||
message = "申请空托盘出入库出错,返回参数:" + jsonObject;
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请空托盘出入库,返回参数:" + response)
|
||||
.content("申请空托盘出入库,返回参数:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
@@ -852,6 +859,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
jo.put("materiel", material_barcode);
|
||||
jo.put("inst_message", this.inst_message);
|
||||
jo.put("notCreateInstMessage", LangProcess.msg(notCreateInstMessage));
|
||||
jo.put("vehicle_code2", this.vehicle_code2);
|
||||
return jo;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.nl.acs.device_driver.FeedLmsRealFailed;
|
||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||
import org.nl.acs.device_driver.one_manipulator.box_package_manipulator.InteractionJsonDTO;
|
||||
import org.nl.acs.enums.AcsToLmsApplyTaskTypeEnum;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.acs.history.ErrorUtil;
|
||||
@@ -88,6 +89,8 @@ public class FinishedProductOutBindLableDeviceDriver extends AbstractOpcDeviceDr
|
||||
|
||||
String notCreateInstMessage = "";
|
||||
|
||||
String vehicle_code2;
|
||||
|
||||
//工作模式
|
||||
int mode = 0;
|
||||
int last_mode = 0;
|
||||
@@ -339,7 +342,7 @@ public class FinishedProductOutBindLableDeviceDriver extends AbstractOpcDeviceDr
|
||||
inst_message = null;
|
||||
}
|
||||
|
||||
private void applyLaStrangulationAndLabeling(int mode) {
|
||||
private void applyLaStrangulationAndLabeling(int mode) throws Exception {
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.require_apply_strangulation_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -347,47 +350,56 @@ public class FinishedProductOutBindLableDeviceDriver extends AbstractOpcDeviceDr
|
||||
} else {
|
||||
this.require_apply_strangulation_time = date;
|
||||
Instruction inst = instructionService.findByCodeFromCache(String.valueOf(task));
|
||||
if (ObjectUtil.isEmpty(inst) || StrUtil.isEmpty(inst.getVehicle_code())) {
|
||||
message = "指令为空、或者托盘码未空";
|
||||
return;
|
||||
}
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code", device_code);
|
||||
param.put("vehicle_code", inst.getVehicle_code());
|
||||
param.put("type", AcsToLmsApplyTaskTypeEnum.LABEL_BIND.getType());
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请捆扎,请求参数:" + param)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
String response = acsToWmsService.deviceApplyTwo(param);
|
||||
JSONObject jo = JSON.parseObject(response);
|
||||
message = "申请捆扎,参数,接口返回:" + jo;
|
||||
if (jo.getInteger("status") == 200) {
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请捆扎,参数,接口返回:" + jo)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
// Map datas = applyLabelingAndBindingResponse.getData();
|
||||
packagePLCData(jo.getString("data"), mode);
|
||||
requireSucess = true;
|
||||
if (ObjectUtil.isNotEmpty(inst)) {
|
||||
applyLaStrangulationAndLabeling2();
|
||||
} else {
|
||||
this.iserror = true;
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请捆扎失败,接口返回:" + response)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
message = "申请捆扎报错,参数,接口返回:" + jo;
|
||||
|
||||
message = "当前指令号:" + task + "有误,需补码重新申请捆扎贴标";
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(hand_barcode)) {
|
||||
TaskDto taskDtoHandCode = taskserver.findByVehicleCode2AndExcute(hand_barcode);
|
||||
if (Objects.nonNull(taskDtoHandCode)) {
|
||||
applyLaStrangulationAndLabeling2();
|
||||
message = "";
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void applyLaStrangulationAndLabeling2() throws Exception {
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code", device_code);
|
||||
param.put("vehicle_code", inst.getVehicle_code());
|
||||
param.put("type", AcsToLmsApplyTaskTypeEnum.LABEL_BIND.getType());
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请捆扎,请求参数:" + param)
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
String response = acsToWmsService.deviceApplyTwo(param);
|
||||
JSONObject jo = JSON.parseObject(response);
|
||||
message = "申请捆扎,参数,接口返回:" + jo;
|
||||
if (jo.getInteger("status") == 200) {
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请捆扎,参数,接口返回:" + jo)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
// Map datas = applyLabelingAndBindingResponse.getData();
|
||||
packagePLCData(jo.getString("data"), mode);
|
||||
requireSucess = true;
|
||||
} else {
|
||||
this.iserror = true;
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请捆扎失败,接口返回:" + response)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
message = "申请捆扎报错,参数,接口返回:" + jo;
|
||||
}
|
||||
}
|
||||
|
||||
// 申请贴标
|
||||
@@ -706,6 +718,7 @@ public class FinishedProductOutBindLableDeviceDriver extends AbstractOpcDeviceDr
|
||||
jo.put("is_click", true);
|
||||
jo.put("requireSucess", requireSucess);
|
||||
jo.put("driver_type", "siemens_conveyor");
|
||||
jo.put("vehicle_code2", this.vehicle_code2);
|
||||
jo.put("notCreateInstMessage", LangProcess.msg(notCreateInstMessage));
|
||||
return jo;
|
||||
}
|
||||
@@ -978,6 +991,10 @@ public class FinishedProductOutBindLableDeviceDriver extends AbstractOpcDeviceDr
|
||||
* 更新指令状态
|
||||
*/
|
||||
public synchronized void update_instruction_status() throws Exception {
|
||||
if (null != inst) {
|
||||
inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code();
|
||||
vehicle_code2 = inst.getVehicle_code2();
|
||||
}
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_update_time_out);
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
||||
@@ -616,13 +617,17 @@ public class FoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
String response = acsToWmsService.applyTwo(param);
|
||||
JSONObject jo = JSON.parseObject(response);
|
||||
message = "申请空托盘出入库,参数,接口返回:" + jo;
|
||||
if (jo.getInteger("status") == 200) {
|
||||
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
||||
JSONObject jsonObject = null;
|
||||
if(ObjectUtil.isNotEmpty(httpResponse)){
|
||||
String body = httpResponse.body();
|
||||
jsonObject = JSONObject.parseObject(body);
|
||||
}
|
||||
message = "申请空托盘出入库,参数,接口返回:" + jsonObject;
|
||||
if (ObjectUtil.isNotNull(jsonObject) && jsonObject.getInteger("status") == 200) {
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请空托盘出入库,参数,接口返回:" + jo)
|
||||
.content("申请空托盘出入库,参数,接口返回:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
@@ -635,10 +640,10 @@ public class FoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implements
|
||||
this.requireSucess = true;
|
||||
} else {
|
||||
this.iserror = true;
|
||||
message = "申请空托盘出入库报错,接口返回:" + jo;
|
||||
message = "申请空托盘出入库报错,接口返回:" + jsonObject;
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请空托盘出入库,返回参数:" + response)
|
||||
.content("申请空托盘出入库,返回参数:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
|
||||
@@ -159,6 +159,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
//托盘方向
|
||||
int carrier_direction = 0;
|
||||
int last_carrier_direction = 0;
|
||||
String vehicle_code2;
|
||||
|
||||
Boolean isonline = true;
|
||||
int hasGoods = 0;
|
||||
@@ -499,13 +500,17 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
String response = acsToWmsService.applyTwo(param);
|
||||
JSONObject jo = JSON.parseObject(response);
|
||||
message = "申请退货入库,返回参数:" + jo;
|
||||
if (jo.getInteger("status") == 200) {
|
||||
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
||||
JSONObject jsonObject = null;
|
||||
if(ObjectUtil.isNotEmpty(httpResponse)){
|
||||
String body = httpResponse.body();
|
||||
jsonObject = JSONObject.parseObject(body);
|
||||
}
|
||||
message = "申请退货入库,返回参数:" + jsonObject;
|
||||
if (ObjectUtil.isNotNull(jsonObject) && jsonObject.getInteger("status") == 200) {
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请退货入库,参数,接口返回:" + jo)
|
||||
.content("申请退货入库,参数,接口返回:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
@@ -520,11 +525,11 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
this.iserror = true;
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请退货入库,返回参数:" + response)
|
||||
.content("申请退货入库,返回参数:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
message = "申请退货入库报错,返回参数:" + jo;
|
||||
message = "申请退货入库报错,返回参数:" + jsonObject;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@@ -611,13 +616,17 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
String response = acsToWmsService.applyTwo(param);
|
||||
JSONObject jo = JSON.parseObject(response);
|
||||
message = "申请空托盘出入库,返回参数:" + jo;
|
||||
if (jo.getInteger("status") == 200) {
|
||||
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
||||
JSONObject jsonObject = null;
|
||||
if(ObjectUtil.isNotEmpty(httpResponse)){
|
||||
String body = httpResponse.body();
|
||||
jsonObject = JSONObject.parseObject(body);
|
||||
}
|
||||
message = "申请空托盘出入库,返回参数:" + jsonObject;
|
||||
if (jsonObject.getInteger("status") == 200) {
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请空托盘出入库,参数,接口返回:" + jo)
|
||||
.content("申请空托盘出入库,参数,接口返回:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
@@ -630,10 +639,10 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
this.requireSucess = true;
|
||||
} else {
|
||||
this.iserror = true;
|
||||
message = "申请空托盘出入库报错,返回参数:" + jo;
|
||||
message = "申请空托盘出入库报错,返回参数:" + jsonObject;
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("申请空托盘出入库,返回参数:" + response)
|
||||
.content("申请空托盘出入库,返回参数:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
@@ -676,13 +685,17 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
String response = acsToWmsService.applyTwo(param);
|
||||
JSONObject jo = JSON.parseObject(response);
|
||||
message = "木箱、子卷入库申请入库任务,返回参数:" + jo;
|
||||
if (jo.getInteger("status") == 200) {
|
||||
HttpResponse httpResponse = acsToWmsService.applyTwo(param);
|
||||
JSONObject jsonObject = null;
|
||||
if(ObjectUtil.isNotEmpty(httpResponse)){
|
||||
String body = httpResponse.body();
|
||||
jsonObject = JSONObject.parseObject(body);
|
||||
}
|
||||
message = "木箱、子卷入库申请入库任务,返回参数:" + jsonObject;
|
||||
if (ObjectUtil.isNotNull(jsonObject) && jsonObject.getInteger("status") == 200) {
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("木箱、子卷入库申请入库任务,参数,接口返回:" + jo)
|
||||
.content("木箱、子卷入库申请入库任务,参数,接口返回:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
@@ -697,10 +710,10 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
this.iserror = true;
|
||||
LuceneLogDto logDto2 = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("木箱、子卷入库申请入库任务,返回参数:" + response)
|
||||
.content("木箱、子卷入库申请入库任务,返回参数:" + jsonObject)
|
||||
.build();
|
||||
logDto2.setLog_level(4);
|
||||
message = "木箱、子卷入库申请入库任务报错,返回参数:" + jo;
|
||||
message = "木箱、子卷入库申请入库任务报错,返回参数:" + jsonObject;
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto2);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -713,6 +726,10 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
||||
* 更新指令状态
|
||||
*/
|
||||
public synchronized void update_instruction_status() throws Exception {
|
||||
if (null != inst) {
|
||||
inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code();
|
||||
vehicle_code2 = inst.getVehicle_code2();
|
||||
}
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_update_time_out);
|
||||
|
||||
@@ -381,10 +381,39 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice
|
||||
}
|
||||
}
|
||||
}
|
||||
List<TaskDto> taskDtosLikeReady = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(taskDtosReady)) {
|
||||
List<TaskDto> taskDtoList = taskDtosReady.stream().sorted(Comparator.comparing(TaskDto::getCreate_time)).collect(Collectors.toList());
|
||||
taskDto = taskDtoList.get(0);
|
||||
for (TaskDto dto : taskDtosReady) {
|
||||
BeltConveyorDeviceDriver beltConveyorDeviceDriverStart;
|
||||
BeltConveyorDeviceDriver beltConveyorDeviceDriverEnd;
|
||||
Device startDevice = deviceAppService.findDeviceByCode(dto.getStart_device_code());
|
||||
Device nextDevice = deviceAppService.findDeviceByCode(dto.getNext_device_code());
|
||||
if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver && nextDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) {
|
||||
beltConveyorDeviceDriverStart = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver();
|
||||
beltConveyorDeviceDriverEnd = (BeltConveyorDeviceDriver) nextDevice.getDeviceDriver();
|
||||
if (beltConveyorDeviceDriverStart.getMove() == 1 && beltConveyorDeviceDriverStart.getMode() == 2 && beltConveyorDeviceDriverEnd.getMove() == 1 && beltConveyorDeviceDriverEnd.getMode() == 2) {
|
||||
taskDtosLikeReady.add(dto);
|
||||
} else {
|
||||
if (beltConveyorDeviceDriverStart.getMove() != 1) {
|
||||
notCreateInstMessage = "universal_feedMessage7";
|
||||
}
|
||||
if (beltConveyorDeviceDriverStart.getMode() != 2) {
|
||||
notCreateInstMessage = "universal_remark2";
|
||||
}
|
||||
if (beltConveyorDeviceDriverEnd.getMove() != 1) {
|
||||
notCreateInstMessage = "universal_feedMessage7";
|
||||
}
|
||||
if (beltConveyorDeviceDriverEnd.getMode() != 2) {
|
||||
notCreateInstMessage = "universal_remark2";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (ObjectUtil.isNotEmpty(taskDto)) {
|
||||
String interactionJson = taskDto.getInteraction_json();
|
||||
InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class);
|
||||
@@ -403,38 +432,6 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice
|
||||
throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!");
|
||||
}
|
||||
|
||||
|
||||
BeltConveyorDeviceDriver beltConveyorDeviceDriverStart;
|
||||
BeltConveyorDeviceDriver beltConveyorDeviceDriverEnd;
|
||||
|
||||
if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) {
|
||||
beltConveyorDeviceDriverStart = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver();
|
||||
if (beltConveyorDeviceDriverStart.getMove() != 1 && beltConveyorDeviceDriverStart.getMode() != 2) {
|
||||
notCreateInstMessage = "universal_notCreateInstMessage2";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (nextDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) {
|
||||
beltConveyorDeviceDriverEnd = (BeltConveyorDeviceDriver) nextDevice.getDeviceDriver();
|
||||
if (beltConveyorDeviceDriverEnd.getMove() == 1 && beltConveyorDeviceDriverEnd.getMode() == 2) {
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("当前任务号:" + taskDto.getTask_code() + " " + next_device_code + "当前move值为:" + beltConveyorDeviceDriverEnd.getMove() + ",当前mode值为:"+beltConveyorDeviceDriverEnd.getMode())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
}else {
|
||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
.content("当前任务号:" + taskDto.getTask_code() + " " + next_device_code + "当前move值为:" + beltConveyorDeviceDriverEnd.getMove() + ",当前mode值为:"+beltConveyorDeviceDriverEnd.getMode())
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
notCreateInstMessage = "universal_notCreateInstMessage2";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
String taskid = taskDto.getTask_id();
|
||||
String taskcode = taskDto.getTask_code();
|
||||
String start_point_code = taskDto.getStart_point_code();
|
||||
@@ -486,7 +483,7 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice
|
||||
notCreateInstMessage = "universal_notCreateInstMessage";
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -307,6 +307,8 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
Boolean iserror = false;
|
||||
|
||||
String inst_message;
|
||||
|
||||
String vehicle_code2;
|
||||
//阻塞队列,保证指令顺序执行
|
||||
LinkedBlockingQueue<StackerInstruction> tackerInstructionQueue = new LinkedBlockingQueue<>();
|
||||
|
||||
@@ -350,6 +352,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
if (mode == 3 && task > 0 && command == 1 && error == 0) {
|
||||
if (null != inst) {
|
||||
inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code();
|
||||
vehicle_code2 = inst.getVehicle_code2();
|
||||
}
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) {
|
||||
@@ -1337,6 +1340,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme
|
||||
jo.put("isError", this.getIserror());
|
||||
jo.put("notCreateInstMessage", notCreateInstMessage);
|
||||
jo.put("inst_message", this.inst_message);
|
||||
jo.put("vehicle_code2", this.vehicle_code2);
|
||||
return jo;
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ public interface AcsToWmsService {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
String applyTwo(JSONObject param);
|
||||
HttpResponse applyTwo(JSONObject param);
|
||||
|
||||
/**
|
||||
* 二期发货申请任务
|
||||
|
||||
@@ -163,14 +163,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String applyTwo(JSONObject param) {
|
||||
public HttpResponse applyTwo(JSONObject param) {
|
||||
HttpResponse result2 = null;
|
||||
try {
|
||||
MDC.put(log_file_type, log_type);
|
||||
log.info("applyTaskToWms-----输入参数{}", param);
|
||||
String wmsurl = paramService.findByCode(AcsConfig.WMSURL).getValue();
|
||||
AddressDto addressDto = addressService.findByCode("applyTwo");
|
||||
String url = wmsurl + addressDto.getMethods_url();
|
||||
HttpResponse result2 = null;
|
||||
try {
|
||||
result2 = HttpRequest.post(url)
|
||||
.addInterceptor(tLogHutoolhttpInterceptor)
|
||||
@@ -183,21 +183,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
log.info("applyTaskToWms-----输出参数{}", msg);
|
||||
//网络不通
|
||||
}
|
||||
if(ObjectUtil.isEmpty(result2)){
|
||||
log.info("applyTaskToWms-----输出参数{}", "返回结果为空");
|
||||
return null;
|
||||
}
|
||||
String type = "";
|
||||
if (result2.getStatus() == 200) {
|
||||
type = "info";
|
||||
} else {
|
||||
type = "error";
|
||||
}
|
||||
log.info("applyTaskToWms-----输出参数{}", result2.body());
|
||||
LuceneLogDto luceneLogDto = new LuceneLogDto(4,"applyTwo", String.valueOf(result2.getStatus()),
|
||||
JSON.toJSONString(param), String.valueOf(result2.body()), "二期入库申请任务");
|
||||
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||
return result2.body();
|
||||
return result2;
|
||||
|
||||
} finally {
|
||||
MDC.remove(log_file_type);
|
||||
|
||||
@@ -426,6 +426,14 @@ public interface TaskService extends CommonService<Task> {
|
||||
*/
|
||||
TaskDto findByVehicleCodeCodeAndReady(String device_code);
|
||||
|
||||
/**
|
||||
* 根据木箱号查询执行中任务
|
||||
*
|
||||
* @param device_code
|
||||
* @return
|
||||
*/
|
||||
TaskDto findByVehicleCode2AndExcute(String device_code);
|
||||
|
||||
/**
|
||||
* 根据起点设备编号查询当前是否有执行中任务
|
||||
*
|
||||
|
||||
@@ -1196,6 +1196,16 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
||||
return optionalTask.orElse(null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TaskDto findByVehicleCode2AndExcute(String vehicleCode) {
|
||||
Optional<TaskDto> optionalTask = tasks.stream()
|
||||
.filter(task -> StrUtil.equals(task.getVehicle_code2(), vehicleCode)
|
||||
&& StrUtil.equals(task.getTask_status(), TaskStatusEnum.BUSY.getIndex()))
|
||||
.findFirst();
|
||||
return optionalTask.orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskDto findByCodeAndExcute(String start_code, String next_code) {
|
||||
Task task = this.lambdaQuery()
|
||||
|
||||
@@ -46,6 +46,7 @@ public class AutoCreateInst {
|
||||
* 创建指令前需要判断是否条件具备:起始位置是否有货、目标位置是否有货
|
||||
*/
|
||||
public void run() throws Exception {
|
||||
log.info("自动生成指令"+DateUtil.now());
|
||||
TaskService taskserver = SpringContextHolder.getBean(TaskService.class);
|
||||
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
|
||||
RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class);
|
||||
|
||||
@@ -43,6 +43,7 @@ public class CreateDDJInst {
|
||||
* 定时查询堆垛机任务
|
||||
*/
|
||||
public void run() {
|
||||
log.info("定时查询堆垛机任务"+DateUtil.now());
|
||||
TaskService taskserver = SpringContextHolder.getBean(TaskService.class);
|
||||
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
|
||||
RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.system.service.quartz.task;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.auto.run.AutoRunService;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
@@ -20,6 +21,7 @@ public class NdcAutoReconnection {
|
||||
AutoRunService autoRunService;
|
||||
|
||||
public void run(String threadCode) throws Exception {
|
||||
log.info("定时NDC自动重连"+ DateUtil.now());
|
||||
String[] threadCodes = threadCode.split(",");
|
||||
for (String code : threadCodes) {
|
||||
if (!autoRunService.getThreadByCode(code).isAlive()) {
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
package org.nl.system.service.quartz.task;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.agv.server.AgvService;
|
||||
import org.nl.acs.agv.server.dto.AgvDto;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
import org.nl.common.mnt.websocket.MsgType;
|
||||
import org.nl.common.mnt.websocket.SocketMsg;
|
||||
import org.nl.common.mnt.websocket.WebSocketServer;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 查询AGV设备状态
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ToAgvDevice {
|
||||
@Autowired
|
||||
AcsToWmsService acsToWmsService;
|
||||
@Autowired
|
||||
AgvService agvService;
|
||||
|
||||
public void run() throws Exception {
|
||||
JSONObject json = new JSONObject();
|
||||
Map<String, AgvDto> agv_map = agvService.findAllAgvFromCache();
|
||||
|
||||
JSONArray agv_rows = new JSONArray();
|
||||
JSONObject row = new JSONObject();
|
||||
|
||||
for (AgvDto agvDto : agv_map.values()) {
|
||||
row.put("device_code", agvDto.getName());
|
||||
row.put("energyLevel", agvDto.getEnergyLevel());
|
||||
if (agvDto.getState().equals("UNKNOWN")) {
|
||||
row.put("status_name", "有任务");
|
||||
row.put("flag", "1");
|
||||
}
|
||||
if (agvDto.getState().equals("UNAVAILABLE")) {
|
||||
row.put("status_name", "网络异常");
|
||||
row.put("flag", "1");
|
||||
}
|
||||
if (agvDto.getState().equals("ERROR")) {
|
||||
row.put("status_name", "机器错误");
|
||||
row.put("flag", "1");
|
||||
}
|
||||
if (agvDto.getState().equals("IDLE")) {
|
||||
row.put("status_name", "空闲");
|
||||
row.put("flag", "0");
|
||||
}
|
||||
if (agvDto.getState().equals("EXECUTING")) {
|
||||
row.put("status_name", "运行中");
|
||||
row.put("flag", "0");
|
||||
}
|
||||
if (agvDto.getState().equals("CHARGING")) {
|
||||
row.put("status_name", "充电中");
|
||||
row.put("flag", "0");
|
||||
}
|
||||
row.put("transportOrder", agvDto.getTransportOrder());
|
||||
row.put("positionX", agvDto.getPositionX());
|
||||
row.put("positionY", agvDto.getPositionY());
|
||||
row.put("positionAngle", agvDto.getPositionAngle());
|
||||
agv_rows.add(row);
|
||||
}
|
||||
json.put("agv_rows", agv_rows);
|
||||
SocketMsg deviceInfo = new SocketMsg(json, MsgType.INFO);
|
||||
WebSocketServer.sendInfo(deviceInfo, "toAgvDevice_data");
|
||||
|
||||
// acsToWmsService.feedbackAgv(row);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user