迦南新需求更新(手持、驱动同步产品信息)
This commit is contained in:
@@ -45,7 +45,7 @@ public class ItemProtocol {
|
||||
public int getOpcIntegerValue(String protocol) {
|
||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||
if (value == null) {
|
||||
log.error("读取错误!");
|
||||
// log.error("读取错误!");
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class ItemProtocol {
|
||||
public int getOpcIntegerValue(String protocol) {
|
||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||
if (value == null) {
|
||||
log.error("读取错误!");
|
||||
// log.error("读取错误!");
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public class ItemProtocol {
|
||||
public int getOpcIntegerValue(String protocol) {
|
||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||
if (value == null) {
|
||||
log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
// log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
setIsonline(false);
|
||||
} else {
|
||||
setIsonline(true);
|
||||
|
||||
@@ -101,7 +101,7 @@ public class ItemProtocol {
|
||||
public int getOpcIntegerValue(String protocol) {
|
||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||
if (value == null) {
|
||||
log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
// log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
setIsonline(false);
|
||||
} else {
|
||||
setIsonline(true);
|
||||
|
||||
@@ -96,7 +96,7 @@ public class ItemProtocol {
|
||||
public int getOpcIntegerValue(String protocol) {
|
||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||
if (value == null) {
|
||||
log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
// log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
setIsonline(false);
|
||||
} else {
|
||||
setIsonline(true);
|
||||
|
||||
@@ -79,7 +79,7 @@ public class ItemProtocol {
|
||||
public int getOpcIntegerValue(String protocol) {
|
||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||
if (value == null) {
|
||||
log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
// log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
setIsonline(false);
|
||||
} else {
|
||||
setIsonline(true);
|
||||
|
||||
@@ -22,6 +22,10 @@ public class ItemProtocol {
|
||||
public static String item_to_target = "to_target";
|
||||
public static String item_to_task = "to_task";
|
||||
public static String item_weight = "weight";
|
||||
public static String item_product_code = "product_code";
|
||||
public static String item_batch_code = "batch_code";
|
||||
public static String item_product_specifications = "product_specifications";
|
||||
public static String item_time = "time";
|
||||
|
||||
private StandardInspectSiteSmartDeviceDriver driver;
|
||||
|
||||
@@ -53,6 +57,27 @@ public class ItemProtocol {
|
||||
return this.getOpcIntegerValue(item_task);
|
||||
}
|
||||
|
||||
public String getWeight() {
|
||||
return this.getOpcStringValue(item_weight);
|
||||
}
|
||||
|
||||
public String getProductCode() {
|
||||
return this.getOpcStringValue(item_product_code);
|
||||
}
|
||||
|
||||
public String getBatchCode() {
|
||||
return this.getOpcStringValue(item_batch_code);
|
||||
}
|
||||
|
||||
public String getProductSpecifications() {
|
||||
return this.getOpcStringValue(item_product_specifications);
|
||||
}
|
||||
|
||||
public String getTime() {
|
||||
return this.getOpcStringValue(item_time);
|
||||
}
|
||||
|
||||
|
||||
public int getToCommand() {
|
||||
return this.getOpcIntegerValue(item_to_command);
|
||||
}
|
||||
@@ -75,7 +100,7 @@ public class ItemProtocol {
|
||||
public int getOpcIntegerValue(String protocol) {
|
||||
Integer value = this.driver.getIntegerValue(protocol);
|
||||
if (value == null) {
|
||||
log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
// log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!");
|
||||
setIsonline(false);
|
||||
} else {
|
||||
setIsonline(true);
|
||||
@@ -85,6 +110,17 @@ public class ItemProtocol {
|
||||
|
||||
}
|
||||
|
||||
public String getOpcStringValue(String protocol) {
|
||||
String value = this.driver.getStringValue(protocol);
|
||||
if (value == null) {
|
||||
//throw new BusinessException("{} : {}", new Object[]{protocol, DeviceErrorProtocol.getMessage(10000)});
|
||||
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
return "0";
|
||||
}
|
||||
|
||||
public static List<ItemDto> getReadableItemDtos() {
|
||||
ArrayList list = new ArrayList();
|
||||
list.add(new ItemDto(item_heartbeat, "心跳", "VW0"));
|
||||
@@ -93,6 +129,11 @@ public class ItemProtocol {
|
||||
list.add(new ItemDto(item_action, "动作信号", "VW8"));
|
||||
list.add(new ItemDto(item_error, "报警信号", "VW12"));
|
||||
list.add(new ItemDto(item_task, "任务号", "VD14"));
|
||||
list.add(new ItemDto(item_product_code, "产品名称", "VW18"));
|
||||
list.add(new ItemDto(item_batch_code, "批次号", "VW20", Boolean.valueOf(true)));
|
||||
list.add(new ItemDto(item_product_specifications, "产品规格", "VW40"));
|
||||
list.add(new ItemDto(item_weight, "重量", "VW50"));
|
||||
list.add(new ItemDto(item_time, "时间", "VW60"));
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@@ -130,9 +130,6 @@ public class StandardInspectSiteSmartDeviceDriver extends AbstractOpcDeviceDrive
|
||||
// 工序
|
||||
private String process;
|
||||
|
||||
// 重量
|
||||
private String weight;
|
||||
|
||||
// 质量状态
|
||||
private String qc_status;
|
||||
|
||||
@@ -146,6 +143,26 @@ public class StandardInspectSiteSmartDeviceDriver extends AbstractOpcDeviceDrive
|
||||
|
||||
Boolean islock = false;
|
||||
|
||||
// 重量
|
||||
private String weight;
|
||||
private String last_weight;
|
||||
|
||||
// 产品名称
|
||||
private String product_code;
|
||||
private String last_product_code;
|
||||
|
||||
// 批次号
|
||||
private String batch_code;
|
||||
private String last_batch_code;
|
||||
|
||||
// 产品规格
|
||||
private String product_specifications;
|
||||
private String last_product_specifications;
|
||||
|
||||
// 时间
|
||||
private String time;
|
||||
private String last_time;
|
||||
|
||||
@Override
|
||||
public Device getDevice() {
|
||||
return this.device;
|
||||
@@ -162,6 +179,11 @@ public class StandardInspectSiteSmartDeviceDriver extends AbstractOpcDeviceDrive
|
||||
move = this.itemProtocol.getMove();
|
||||
task = this.itemProtocol.getTask();
|
||||
hasGoods = this.itemProtocol.getMove();
|
||||
weight = this.itemProtocol.getWeight();
|
||||
product_code = this.itemProtocol.getProductCode();
|
||||
batch_code = this.itemProtocol.getBatchCode();
|
||||
product_specifications = this.itemProtocol.getProductSpecifications();
|
||||
time = this.itemProtocol.getTime();
|
||||
|
||||
if (mode != last_mode) {
|
||||
if (mode == 5) {
|
||||
@@ -337,6 +359,11 @@ public class StandardInspectSiteSmartDeviceDriver extends AbstractOpcDeviceDrive
|
||||
last_error = error;
|
||||
last_move = move;
|
||||
last_task = task;
|
||||
last_weight = weight;
|
||||
last_product_code = product_code;
|
||||
last_product_specifications = product_specifications;
|
||||
last_batch_code = batch_code;
|
||||
last_time = time;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -91,7 +91,6 @@ public class PadServiceImpl implements PadService {
|
||||
3 强制完成*/
|
||||
if (type.equals("1")) {
|
||||
//调用agv删除任务的接口
|
||||
agvService = SpringContextHolder.getBean("agvServiceImpl");
|
||||
try {
|
||||
agvService.deleteAgvInstToNDC(instwo.toJavaObject(Instruction.class));
|
||||
instructionService.cancel(inst_uuid);
|
||||
@@ -105,7 +104,6 @@ public class PadServiceImpl implements PadService {
|
||||
}
|
||||
if (type.equals("2")) {
|
||||
Instruction instdto = (Instruction) JSONObject.toJavaObject(instwo, Instruction.class);
|
||||
AgvService agvserver = SpringContextHolder.getBean("agvServiceImpl");
|
||||
try {
|
||||
if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.FORKAGV).toString(), "1")) {
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.nl.acs.device_driver.standard_autodoor.StandardAutodoorDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_conveyor_control.StandardCoveyorControlDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_emptypallet_site.StandardEmptyPalletSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_inspect_site.StandardInspectSiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_inspect_site_smart200.StandardInspectSiteSmartDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
|
||||
import org.nl.acs.device_driver.standard_storage.StandardStorageDeviceDriver;
|
||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||
@@ -156,6 +157,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
StandardStorageDeviceDriver standardStorageDeviceDriver;
|
||||
StandardAutodoorDeviceDriver standardAutodoorDeviceDriver;
|
||||
StandardEmptyPalletSiteDeviceDriver standardEmptyPalletSiteDeviceDriver;
|
||||
StandardInspectSiteSmartDeviceDriver standardInspectSiteSmartDeviceDriver;
|
||||
int type = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.BUSINESSTYPE));
|
||||
|
||||
try {
|
||||
@@ -180,7 +182,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
// 到达取货点请求取货
|
||||
else if (phase == 0x03) {
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "","",String.valueOf(ikey));
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "", "", String.valueOf(ikey));
|
||||
break;
|
||||
}
|
||||
//检测站点
|
||||
@@ -194,7 +196,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code,"","", "AGV请求取货设备{}无货,无法反馈");
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV请求取货设备{}无货,无法反馈");
|
||||
}
|
||||
}
|
||||
//普通站点
|
||||
@@ -212,49 +214,80 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code,"","","AGV请求取货设备{}无货,无法反馈");
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV请求取货设备{}无货,无法反馈");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 检验取放货条件
|
||||
JSONObject agv_check = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check' AND device_code = '" + device.getDevice_code() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(agv_check) && "true".equals(agv_check.getString("extra_value"))) {
|
||||
JSONObject agv_check_status = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check_status' AND device_code = '" + device.getDevice_code() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(agv_check_status) && "2".equals(agv_check_status.getString("extra_value"))) {
|
||||
//检测站点smart200
|
||||
if (device.getDeviceDriver() instanceof StandardInspectSiteSmartDeviceDriver) {
|
||||
standardInspectSiteSmartDeviceDriver = (StandardInspectSiteSmartDeviceDriver) device.getDeviceDriver();
|
||||
if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) {
|
||||
inst.setExecute_status("1");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
agv_check_status.put("extra_value", "0");
|
||||
device_extra_table.update(agv_check_status);
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code,"","","AGV请求取货设备{}未放盖确认,无法反馈");
|
||||
if (device.getHas_goods() != 0) {
|
||||
inst.setExecute_status("1");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV请求取货设备{}无货,无法反馈");
|
||||
}
|
||||
}
|
||||
|
||||
//如果是混料区则上送LMS当前点位的字段,同步到st_ivt_structivt仓位库存表
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("device_code", device_code);
|
||||
jsonObject.put("weight", standardInspectSiteSmartDeviceDriver.getWeight());
|
||||
jsonObject.put("product_code", standardInspectSiteSmartDeviceDriver.getProduct_code());
|
||||
jsonObject.put("batch_code", standardInspectSiteSmartDeviceDriver.getBatch_code());
|
||||
jsonObject.put("product_specifications", standardInspectSiteSmartDeviceDriver.getProduct_specifications());
|
||||
jsonObject.put("time", standardInspectSiteSmartDeviceDriver.getTime());
|
||||
jsonObject.put("type","9");
|
||||
acsToWmsService.lnshApplyTaskToWms(jsonObject);
|
||||
}
|
||||
|
||||
// 检验取放货条件
|
||||
JSONObject agv_check = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check' AND device_code = '" + device.getDevice_code() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(agv_check) && "true".equals(agv_check.getString("extra_value"))) {
|
||||
JSONObject agv_check_status = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check_status' AND device_code = '" + device.getDevice_code() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(agv_check_status) && "2".equals(agv_check_status.getString("extra_value"))) {
|
||||
inst.setExecute_status("1");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
agv_check_status.put("extra_value", "0");
|
||||
device_extra_table.update(agv_check_status);
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV请求取货设备{}未放盖确认,无法反馈");
|
||||
}
|
||||
}
|
||||
// 取货完成请求离开
|
||||
}
|
||||
// 取货完成请求离开
|
||||
else if (phase == 0x05) {
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "","",String.valueOf(ikey));
|
||||
break;
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
||||
standardInspectSiteDeviceDriver.writing(3);
|
||||
if (standardInspectSiteDeviceDriver.getMode() != 0
|
||||
&& standardInspectSiteDeviceDriver.getMove() == 0) {
|
||||
inst.setExecute_status("5");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code,"","","AGV取货完成请求离开设备{}有货,无法反馈");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "", "", String.valueOf(ikey));
|
||||
break;
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
||||
standardInspectSiteDeviceDriver.writing(3);
|
||||
if (standardInspectSiteDeviceDriver.getMode() != 0
|
||||
&& standardInspectSiteDeviceDriver.getMove() == 0) {
|
||||
inst.setExecute_status("5");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV取货完成请求离开设备{}有货,无法反馈");
|
||||
}
|
||||
}
|
||||
|
||||
// if(!inst.getTask_code().startsWith("-")) {
|
||||
// //反馈wms系统动作完成
|
||||
@@ -269,64 +302,65 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
// acsToWmsService.feedbackActionStatusToWms(feedja);
|
||||
// }
|
||||
|
||||
}
|
||||
//请求放货
|
||||
else if (phase == 0x07) {
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "", "", String.valueOf(ikey));
|
||||
break;
|
||||
}
|
||||
//请求放货
|
||||
else if (phase == 0x07) {
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "","",String.valueOf(ikey));
|
||||
break;
|
||||
if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
||||
standardInspectSiteDeviceDriver.writing(4);
|
||||
if (standardInspectSiteDeviceDriver.getMode() != 0
|
||||
&& standardInspectSiteDeviceDriver.getMove() == 0) {
|
||||
inst.setExecute_status("3");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV请求放货设备{}有货,无法反馈");
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
||||
standardInspectSiteDeviceDriver.writing(4);
|
||||
if (standardInspectSiteDeviceDriver.getMode() != 0
|
||||
&& standardInspectSiteDeviceDriver.getMove() == 0) { inst.setExecute_status("3");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code,"","","AGV请求放货设备{}有货,无法反馈");
|
||||
}
|
||||
}
|
||||
// 检验取放货条件
|
||||
JSONObject agv_check = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check' AND device_code = '" + device.getDevice_code() + "'")
|
||||
}
|
||||
// 检验取放货条件
|
||||
JSONObject agv_check = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check' AND device_code = '" + device.getDevice_code() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(agv_check) && "true".equals(agv_check.getString("extra_value"))) {
|
||||
JSONObject agv_check_status = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check_status' AND device_code = '" + device.getDevice_code() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(agv_check) && "true".equals(agv_check.getString("extra_value"))) {
|
||||
JSONObject agv_check_status = device_extra_table
|
||||
.query("is_delete = '0' AND extra_code = 'agv_check_status' AND device_code = '" + device.getDevice_code() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(agv_check_status) && "1".equals(agv_check_status.getString("extra_value"))) {
|
||||
inst.setExecute_status("1");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
agv_check_status.put("extra_value", "0");
|
||||
device_extra_table.update(agv_check_status);
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code,"","","AGV请求取货设备{}未取盖确认,无法反馈");
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(agv_check_status) && "1".equals(agv_check_status.getString("extra_value"))) {
|
||||
inst.setExecute_status("1");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
agv_check_status.put("extra_value", "0");
|
||||
device_extra_table.update(agv_check_status);
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV请求取货设备{}未取盖确认,无法反馈");
|
||||
}
|
||||
}
|
||||
// 放货完成请求离开
|
||||
else if (phase == 0x09) {
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "","",String.valueOf(ikey));
|
||||
break;
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
||||
standardInspectSiteDeviceDriver.writing(5);
|
||||
if (standardInspectSiteDeviceDriver.getMode() != 0
|
||||
&& standardInspectSiteDeviceDriver.getMove() != 0) {
|
||||
inst.setExecute_status("6");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code,"","","AGV放货完成请求离开设备{}无货,无法反馈");
|
||||
}
|
||||
}
|
||||
// 放货完成请求离开
|
||||
else if (phase == 0x09) {
|
||||
if (ObjectUtil.isEmpty(inst)) {
|
||||
logServer.deviceExecuteLog("未找到指令号对应的指令:", "", "", String.valueOf(ikey));
|
||||
break;
|
||||
}
|
||||
if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) {
|
||||
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
|
||||
standardInspectSiteDeviceDriver.writing(5);
|
||||
if (standardInspectSiteDeviceDriver.getMode() != 0
|
||||
&& standardInspectSiteDeviceDriver.getMove() != 0) {
|
||||
inst.setExecute_status("6");
|
||||
instructionService.update(inst);
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
flag = true;
|
||||
} else {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "AGV放货完成请求离开设备{}无货,无法反馈");
|
||||
}
|
||||
}
|
||||
|
||||
// if(!inst.getTask_code().startsWith("-")){
|
||||
// //反馈wms系统动作完成
|
||||
@@ -342,162 +376,167 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
// acsToWmsService.feedbackActionStatusToWms(feedja);
|
||||
// }
|
||||
|
||||
}
|
||||
//任务完毕
|
||||
//(无车id及状态)
|
||||
else if (phase == 0x0A) {
|
||||
if (!ObjectUtil.isEmpty(inst)) {
|
||||
inst.setInstruction_status("2");
|
||||
instructionService.finish(inst);
|
||||
}
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
//请求删除任务
|
||||
else if (phase == 0x30) {
|
||||
flag = true;
|
||||
if (!ObjectUtil.isEmpty(inst)) {
|
||||
data = AgvService.sendAgvOneModeInst(0x8F, index, 0);
|
||||
} else {
|
||||
log.info("未找到对应的指令无法删除");
|
||||
break;
|
||||
}
|
||||
}
|
||||
//任务删除确认
|
||||
//(需要WCS反馈)
|
||||
else if (phase == 0xFF) {
|
||||
flag = true;
|
||||
if (!ObjectUtil.isEmpty(inst)) {
|
||||
instructionService.cancel(inst.getInstruction_id());
|
||||
}
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
//进入区域
|
||||
else if (phase == 0x50) {
|
||||
//开门
|
||||
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
|
||||
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
|
||||
standardAutodoorDeviceDriver.OpenOrClose("1");
|
||||
standardAutodoorDeviceDriver.writeing(1);
|
||||
if (standardAutodoorDeviceDriver.getAction() == 1) {
|
||||
standardAutodoorDeviceDriver.OpenOrClose("1");
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
//离开区域
|
||||
else if (phase == 0x51) {
|
||||
//关门
|
||||
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
|
||||
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
|
||||
standardAutodoorDeviceDriver.OpenOrClose("2");
|
||||
standardAutodoorDeviceDriver.writeing(2);
|
||||
if (standardAutodoorDeviceDriver.getAction() == 2) {
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
}
|
||||
} else if (phase == 0x64) {
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
//上报异常
|
||||
else if (phase == 0x67) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
if (arr[18] * 256 + arr[19] == 0) {
|
||||
dto.setState("IDLE");
|
||||
acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "0", "");
|
||||
} else {
|
||||
StringBuffer errbs = new StringBuffer();
|
||||
for (int i = 0; i < ERROR.length; i++) {
|
||||
if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0)
|
||||
errbs.append("," + ERROR[i]);
|
||||
//反馈故障
|
||||
}
|
||||
dto.setState("ERROR");
|
||||
acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "1", "error");
|
||||
}
|
||||
}
|
||||
//X坐标
|
||||
else if (phase == 0x70) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setPositionX(String.valueOf(ikey));
|
||||
}
|
||||
//Y坐标
|
||||
else if (phase == 0x71) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setPositionY(String.valueOf(ikey));
|
||||
}
|
||||
//角度
|
||||
else if (phase == 0x72) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setPositionAngle(String.valueOf(ikey));
|
||||
}
|
||||
//电量
|
||||
else if (phase == 0x73) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setEnergyLevel(String.valueOf(ikey));
|
||||
}
|
||||
if (!ObjectUtil.isEmpty(data)) {
|
||||
write(data);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
log.info(e.toString());
|
||||
log.info(e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
System.out.println("agv上报不是0073类型动作,不处理");
|
||||
//任务完毕
|
||||
//(无车id及状态)
|
||||
else if (phase == 0x0A) {
|
||||
if (!ObjectUtil.isEmpty(inst)) {
|
||||
inst.setInstruction_status("2");
|
||||
instructionService.finish(inst);
|
||||
}
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
//请求删除任务
|
||||
else if (phase == 0x30) {
|
||||
flag = true;
|
||||
if (!ObjectUtil.isEmpty(inst)) {
|
||||
data = AgvService.sendAgvOneModeInst(0x8F, index, 0);
|
||||
} else {
|
||||
log.info("未找到对应的指令无法删除");
|
||||
break;
|
||||
}
|
||||
}
|
||||
//任务删除确认
|
||||
//(需要WCS反馈)
|
||||
else if (phase == 0xFF) {
|
||||
flag = true;
|
||||
if (!ObjectUtil.isEmpty(inst)) {
|
||||
instructionService.cancel(inst.getInstruction_id());
|
||||
}
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
//进入区域
|
||||
else if (phase == 0x50) {
|
||||
//开门
|
||||
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
|
||||
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
|
||||
standardAutodoorDeviceDriver.OpenOrClose("1");
|
||||
standardAutodoorDeviceDriver.writeing(1);
|
||||
if (standardAutodoorDeviceDriver.getAction() == 1) {
|
||||
standardAutodoorDeviceDriver.OpenOrClose("1");
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
//离开区域
|
||||
else if (phase == 0x51) {
|
||||
//关门
|
||||
if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) {
|
||||
standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver();
|
||||
standardAutodoorDeviceDriver.OpenOrClose("2");
|
||||
standardAutodoorDeviceDriver.writeing(2);
|
||||
if (standardAutodoorDeviceDriver.getAction() == 2) {
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
}
|
||||
} else if (phase == 0x64) {
|
||||
data = AgvService.sendAgvOneModeInst(phase, index, 0);
|
||||
}
|
||||
//上报异常
|
||||
else if (phase == 0x67) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
if (arr[18] * 256 + arr[19] == 0) {
|
||||
dto.setState("IDLE");
|
||||
acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "0", "");
|
||||
} else {
|
||||
StringBuffer errbs = new StringBuffer();
|
||||
for (int i = 0; i < ERROR.length; i++) {
|
||||
if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0)
|
||||
errbs.append("," + ERROR[i]);
|
||||
//反馈故障
|
||||
}
|
||||
dto.setState("ERROR");
|
||||
acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "1", "error");
|
||||
}
|
||||
}
|
||||
//X坐标
|
||||
else if (phase == 0x70) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setPositionX(String.valueOf(ikey));
|
||||
}
|
||||
//Y坐标
|
||||
else if (phase == 0x71) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setPositionY(String.valueOf(ikey));
|
||||
}
|
||||
//角度
|
||||
else if (phase == 0x72) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setPositionAngle(String.valueOf(ikey));
|
||||
}
|
||||
//电量
|
||||
else if (phase == 0x73) {
|
||||
AgvDto dto = null;
|
||||
Map<String, AgvDto> map = AgvService.findAllAgvFromCache();
|
||||
carno = arr[18] * 256 + arr[19];
|
||||
if (map.containsKey(String.valueOf(carno))) {
|
||||
dto = map.get(String.valueOf(carno));
|
||||
} else {
|
||||
dto = new AgvDto();
|
||||
}
|
||||
dto.setName(String.valueOf(carno));
|
||||
dto.setEnergyLevel(String.valueOf(ikey));
|
||||
}
|
||||
if (!ObjectUtil.isEmpty(data)) {
|
||||
write(data);
|
||||
}
|
||||
} catch(Exception e){
|
||||
System.out.println(e);
|
||||
log.info(e.toString());
|
||||
log.info(e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else{
|
||||
System.out.println("agv上报不是0073类型动作,不处理");
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
|
||||
} finally {
|
||||
|
||||
|
||||
}
|
||||
|
||||
} catch(
|
||||
Exception e)
|
||||
|
||||
{
|
||||
|
||||
|
||||
} finally
|
||||
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
|
||||
@@ -8,11 +8,11 @@ spring:
|
||||
druid:
|
||||
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:xugong_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:jianan_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:rljn_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:P@ssw0rd}
|
||||
password: ${DB_PWD:Root.123456}
|
||||
password: ${DB_PWD:123456}
|
||||
# password: ${DB_PWD:123456}
|
||||
# 初始连接数
|
||||
initial-size: 5
|
||||
|
||||
Reference in New Issue
Block a user