opt: 1.解决写入plc报错导致和ndc断开连接。2.解决处理沾包时数组index超出报警。3.解决指令和任务不一致问题。4.新增定时任务自动发送充电任务给ndc。
This commit is contained in:
@@ -200,7 +200,7 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
if (!ObjectUtil.isEmpty(inst)) {
|
||||
instructionService.finish(inst.getInstruction_id());
|
||||
} else {
|
||||
log.warn("指令号:{},未反馈wms任务完成,因为agv上报指令号查询指令为空!");
|
||||
log.info("指令号:{},未反馈wms任务完成,因为agv上报指令号查询指令为空!");
|
||||
}
|
||||
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
||||
log.info("指令号:{},已反馈agv任务完成!");
|
||||
@@ -232,7 +232,11 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
if (ObjectUtil.isNotEmpty(device)) {
|
||||
if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) {
|
||||
agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver();
|
||||
agvNdcOneDeviceDriver.processSocket(arr);
|
||||
try {
|
||||
agvNdcOneDeviceDriver.processSocket(arr);
|
||||
}catch (Exception e){
|
||||
log.error("处理phase:{},发生异常。异常信息:{}",phase,e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,7 +251,7 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
// 更新偏移量,继续处理下一个数据包
|
||||
offset+=messageHeaderLength;
|
||||
// ArrayUtils.indexOf()
|
||||
int index = IntStream.range(offset, packetData.length)
|
||||
int index = IntStream.range(offset, packetData.length - 1)
|
||||
.filter(i -> packetData[i] == 135 && packetData[i + 1] == 205)
|
||||
.findFirst()
|
||||
.orElse(-1);
|
||||
@@ -260,7 +264,7 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
}
|
||||
}else {
|
||||
log.info("消息头无效,不处理。");
|
||||
int index = IntStream.range(offset, packetData.length)
|
||||
int index = IntStream.range(offset, packetData.length - 1)
|
||||
.filter(i -> packetData[i] == 135 && packetData[i + 1] == 205)
|
||||
.findFirst()
|
||||
.orElse(-1);
|
||||
@@ -281,6 +285,7 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
s.close();
|
||||
}
|
||||
System.out.println(e.getMessage());
|
||||
log.error("异常信息:{}", e.getMessage());
|
||||
e.printStackTrace();
|
||||
|
||||
} finally {
|
||||
|
||||
@@ -96,8 +96,8 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
s = new Socket(ip, port);
|
||||
dos = new DataOutputStream(s.getOutputStream());
|
||||
dis = new DataInputStream(s.getInputStream());
|
||||
System.out.println("NDCAgv链接成功");
|
||||
log.info("NDCAgv链接成功");
|
||||
System.out.println("TwoNDCAgv链接成功");
|
||||
log.info("TwoNDC2Agv链接成功");
|
||||
while (bConnected) {
|
||||
int count = dis.read(b);
|
||||
|
||||
@@ -231,7 +231,11 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
if (ObjectUtil.isNotEmpty(device)) {
|
||||
if (device.getDeviceDriver() instanceof AgvNdcOneDeviceDriver) {
|
||||
agvNdcOneDeviceDriver = (AgvNdcOneDeviceDriver) device.getDeviceDriver();
|
||||
agvNdcOneDeviceDriver.processSocket2(arr);
|
||||
try {
|
||||
agvNdcOneDeviceDriver.processSocket2(arr);
|
||||
}catch (Exception e){
|
||||
log.error("处理phase:{},发生异常。异常信息:{}",phase,e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,7 +250,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
// 更新偏移量,继续处理下一个数据包
|
||||
offset+=messageHeaderLength;
|
||||
// ArrayUtils.indexOf()
|
||||
int index = IntStream.range(offset, packetData.length)
|
||||
int index = IntStream.range(offset, packetData.length-1)
|
||||
.filter(i -> packetData[i] == 135 && packetData[i + 1] == 205)
|
||||
.findFirst()
|
||||
.orElse(-1);
|
||||
@@ -259,7 +263,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
}
|
||||
}else {
|
||||
log.info("消息头无效,不处理。");
|
||||
int index = IntStream.range(offset, packetData.length)
|
||||
int index = IntStream.range(offset, packetData.length-1)
|
||||
.filter(i -> packetData[i] == 135 && packetData[i + 1] == 205)
|
||||
.findFirst()
|
||||
.orElse(-1);
|
||||
|
||||
@@ -1472,8 +1472,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
JSONObject resp = acsToWmsService.feedAgvTaskAction(ja);
|
||||
if ("200".equals(resp.getString("code"))) {
|
||||
JSONObject respjson = JSONObject.parseObject(resp.getString("msg"));
|
||||
inst.setInstruction_status("1");
|
||||
inst.setExecute_status("2");
|
||||
//解决指令和任务不一致问题,放货完成后执行修改指令时,ndc上报phase10 先执行的修改指令状态完成,再执行这条修改导致指令完成被脏数据覆盖。
|
||||
//放货完成后 修改指令状态为完成。
|
||||
if (status == 4){
|
||||
inst.setInstruction_status("2");
|
||||
}
|
||||
inst.setExecute_status(status.toString());
|
||||
instructionService.update(inst);
|
||||
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
||||
.device_code(device_code)
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.nl.quartz.task;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.agv.server.NDCAgvService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author liejiu
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class AutoCreateChargingTaskToNDC {
|
||||
|
||||
@Autowired
|
||||
NDCAgvService ndcAgvService;
|
||||
|
||||
public void run(String threadCode) throws Exception {
|
||||
String[] threadCodes = threadCode.split(",");
|
||||
for (String code : threadCodes) {
|
||||
ndcAgvService.createChargingTaskToNDC(code);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user