Browse Source

opt: 1.反馈输送线清0前先把WCS任务完成掉

1
丁世豪 4 months ago
parent
commit
ff432ffaed
  1. 27
      nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java

27
nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java

@ -5,14 +5,17 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jodd.util.StringUtil;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.AcsConfig;
import org.nl.acs.agv.server.NDCAgvService;
import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun;
import org.nl.acs.device.domain.Device;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RequestMethodEnum;
import org.nl.acs.device_driver.basedriver.agv.utils.AgvActionEnum;
import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver;
import org.nl.acs.device_driver.driver.AbstractDeviceDriver;
@ -32,6 +35,7 @@ import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto;
import org.nl.acs.task.service.impl.TaskServiceImpl;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
import org.nl.config.thread.ThreadPoolExecutorUtil;
import org.nl.system.service.lucene.LuceneExecuteLogService;
@ -652,7 +656,28 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
ssxDeviceDriver.writing(5);
if (ssxDeviceDriver.getMode() == 4) {
log.info("设备" + device_code + "的Mode信号已变更为4,当前信号值为:Mode:" + ssxDeviceDriver.getMode() + ",Move:" + ssxDeviceDriver.getMove() + ",Action:" + ssxDeviceDriver.getAction() + ",开始写入0清除mode信号。");
ssxDeviceDriver.writing(0);
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());
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);
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开始离开。");

Loading…
Cancel
Save