|
|
@ -403,13 +403,18 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic |
|
|
|
//到达输送线取货完成
|
|
|
|
if (device.getDeviceDriver() instanceof SsxDeviceDriver) { |
|
|
|
ssxDeviceDriver = (SsxDeviceDriver) device.getDeviceDriver(); |
|
|
|
if (ssxDeviceDriver.getMode() != 0) { |
|
|
|
//获取最新数据
|
|
|
|
inst = instructionService.findByCode(String.valueOf(ikey)); |
|
|
|
if (ssxDeviceDriver.getMode() != 0 && inst != null && !"2".equals(inst.getExecute_status())) { |
|
|
|
log.info("agv进入" + device_code + ",取货完成,开始写入信号3进行安全交互,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction()); |
|
|
|
ssxDeviceDriver.writing(3); |
|
|
|
if (ssxDeviceDriver.getMode() == 3) { |
|
|
|
flag = true; |
|
|
|
log.info("设备" + device_code + "的Mode信号已变更为3,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",开始写入0清除mode信号。"); |
|
|
|
ssxDeviceDriver.writing(0); |
|
|
|
//提前更新 解决ndc上报指令残留问题
|
|
|
|
inst.setExecute_status(AgvActionEnum.ACTION_STATUS.code("取货完成")); |
|
|
|
instructionService.update(inst); |
|
|
|
data = actionComplete(index, inst, device_code, ssxDeviceDriver.getTo_command(), Integer.parseInt(AgvActionEnum.ACTION_STATUS.code("取货完成")), "取货完成"); |
|
|
|
log.info("设备" + device_code + "已完成信号0写入,当前信号值为:" + "Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",agv开始离开。"); |
|
|
|
} else { |
|
|
@ -418,12 +423,6 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic |
|
|
|
log.info("设备" + device_code + "已完成信号3写入,当前信号值为:" + "Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction()); |
|
|
|
} |
|
|
|
ssxDeviceDriver.setMessage(""); |
|
|
|
} else { |
|
|
|
String message = "agv取货完成写入信号3安全交互失败,设备允许模式mode值为0,设备异常,请检查!"; |
|
|
|
agv_message = ssxDeviceDriver.getDevice_code() + message; |
|
|
|
ssxDeviceDriver.setMessage(message); |
|
|
|
log.info(message); |
|
|
|
lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); |
|
|
|
} |
|
|
|
} |
|
|
|
//到达普通站点取货完成
|
|
|
@ -655,43 +654,50 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic |
|
|
|
//到达输送线放货完成
|
|
|
|
if (device.getDeviceDriver() instanceof SsxDeviceDriver) { |
|
|
|
ssxDeviceDriver = (SsxDeviceDriver) device.getDeviceDriver(); |
|
|
|
log.info("agv进入" + device_code + ",放货完成,开始写入信号5进行安全交互,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction()); |
|
|
|
ssxDeviceDriver.writing(5); |
|
|
|
if (ssxDeviceDriver.getMode() == 4) { |
|
|
|
log.info("设备" + device_code + "的Mode信号已变更为4,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",开始写入0清除mode信号。"); |
|
|
|
if (ObjectUtil.isNotEmpty(task)){ |
|
|
|
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); |
|
|
|
if (!StrUtil.startWith(task.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { |
|
|
|
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); |
|
|
|
request.setTask_id(task.getExt_task_id()); |
|
|
|
request.setTask_code(task.getTask_code()); |
|
|
|
request.setTask_status("2"); |
|
|
|
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); |
|
|
|
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); |
|
|
|
request.setStartLocation(task.getStart_point_code()); |
|
|
|
request.setEndLocation(task.getNext_point_code()); |
|
|
|
String res = acsToWmsService.feedTaskStatus(request); |
|
|
|
JSONObject result = JSONObject.parseObject(res); |
|
|
|
if (StringUtil.isNotBlank(result.getString("status")) && "200".equals(result.getString("status"))) { |
|
|
|
log.info("任务号" + request.getTask_code() + "放货完成---反馈wcs任务完成状态" + "成功。"); |
|
|
|
} else if (StringUtil.isNotBlank(result.getString("status")) && !"200".equals(result.getString("status"))){ |
|
|
|
log.info("任务号" + request.getTask_code() + "放货完成---反馈wcs任务完成状态" + "失败,服务器响应的失败原因为:" + result.getString("message")); |
|
|
|
}else if (StringUtil.isNotBlank(result.getString("code")) && "500".equals(result.getString("code"))){ |
|
|
|
log.info("任务号" + request.getTask_code() + "放货完成---请求不通" + "失败,服务器响应的失败原因为:" + result.getString("message")); |
|
|
|
return; |
|
|
|
//获取最新数据
|
|
|
|
inst = instructionService.findByCode(String.valueOf(ikey)); |
|
|
|
if (ssxDeviceDriver.getMode() != 0 && inst != null && !"4".equals(inst.getExecute_status())) { |
|
|
|
log.info("agv进入" + device_code + ",放货完成,开始写入信号5进行安全交互,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction()); |
|
|
|
ssxDeviceDriver.writing(5); |
|
|
|
if (ssxDeviceDriver.getMode() == 4) { |
|
|
|
log.info("设备" + device_code + "的Mode信号已变更为4,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",开始写入0清除mode信号。"); |
|
|
|
if (ObjectUtil.isNotEmpty(task)){ |
|
|
|
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue(); |
|
|
|
if (!StrUtil.startWith(task.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) { |
|
|
|
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest(); |
|
|
|
request.setTask_id(task.getExt_task_id()); |
|
|
|
request.setTask_code(task.getTask_code()); |
|
|
|
request.setTask_status("2"); |
|
|
|
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); |
|
|
|
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); |
|
|
|
request.setStartLocation(task.getStart_point_code()); |
|
|
|
request.setEndLocation(task.getNext_point_code()); |
|
|
|
String res = acsToWmsService.feedTaskStatus(request); |
|
|
|
JSONObject result = JSONObject.parseObject(res); |
|
|
|
if (StringUtil.isNotBlank(result.getString("status")) && "200".equals(result.getString("status"))) { |
|
|
|
log.info("任务号" + request.getTask_code() + "放货完成---反馈wcs任务完成状态" + "成功。"); |
|
|
|
} else if (StringUtil.isNotBlank(result.getString("status")) && !"200".equals(result.getString("status"))){ |
|
|
|
log.info("任务号" + request.getTask_code() + "放货完成---反馈wcs任务完成状态" + "失败,服务器响应的失败原因为:" + result.getString("message")); |
|
|
|
}else if (StringUtil.isNotBlank(result.getString("code")) && "500".equals(result.getString("code"))){ |
|
|
|
log.info("任务号" + request.getTask_code() + "放货完成---请求不通" + "失败,服务器响应的失败原因为:" + result.getString("message")); |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
ssxDeviceDriver.writing(0); |
|
|
|
//提前更新 解决ndc上报指令残留问题
|
|
|
|
inst.setExecute_status(AgvActionEnum.ACTION_STATUS.code("放货完成")); |
|
|
|
instructionService.update(inst); |
|
|
|
flag = true; |
|
|
|
data = actionComplete(index, inst, device_code, ssxDeviceDriver.getTo_command(), Integer.parseInt(AgvActionEnum.ACTION_STATUS.code("放货完成")), "放货完成"); |
|
|
|
log.info("设备" + device_code + "已完成信号0写入,当前信号值为:" + "Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",agv开始离开。"); |
|
|
|
} else { |
|
|
|
log.info("设备" + device_code + "的Mode信号未变更为4,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",尝试重新写入信号5进行安全交互"); |
|
|
|
ssxDeviceDriver.writing(5); |
|
|
|
log.info("设备" + device_code + "已完成信号5写入,当前信号值为:" + "Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction()); |
|
|
|
} |
|
|
|
ssxDeviceDriver.writing(0); |
|
|
|
flag = true; |
|
|
|
data = actionComplete(index, inst, device_code, ssxDeviceDriver.getTo_command(), Integer.parseInt(AgvActionEnum.ACTION_STATUS.code("放货完成")), "放货完成"); |
|
|
|
log.info("设备" + device_code + "已完成信号0写入,当前信号值为:" + "Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",agv开始离开。"); |
|
|
|
} else { |
|
|
|
log.info("设备" + device_code + "的Mode信号未变更为4,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",尝试重新写入信号5进行安全交互"); |
|
|
|
ssxDeviceDriver.writing(5); |
|
|
|
log.info("设备" + device_code + "已完成信号5写入,当前信号值为:" + "Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction()); |
|
|
|
} |
|
|
|
ssxDeviceDriver.setMessage(""); |
|
|
|
ssxDeviceDriver.setMessage(""); |
|
|
|
} |
|
|
|
} |
|
|
|
//agv普通站点放货完成
|
|
|
|
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { |
|
|
|