|
@ -3,6 +3,7 @@ package org.nl.acs.device_driver.lnsh.lnsh_package_pallet_manipulator; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
import cn.hutool.core.util.StrUtil; |
|
|
import cn.hutool.core.util.StrUtil; |
|
|
import cn.hutool.http.HttpResponse; |
|
|
import cn.hutool.http.HttpResponse; |
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import lombok.Getter; |
|
|
import lombok.Getter; |
|
|
import lombok.Setter; |
|
|
import lombok.Setter; |
|
@ -11,9 +12,13 @@ import lombok.extern.slf4j.Slf4j; |
|
|
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; |
|
|
import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; |
|
|
import org.nl.acs.device.service.DeviceService; |
|
|
import org.nl.acs.device.service.DeviceService; |
|
|
import org.nl.acs.device_driver.DeviceDriver; |
|
|
import org.nl.acs.device_driver.DeviceDriver; |
|
|
|
|
|
import org.nl.acs.device_driver.RequestMethodEnum; |
|
|
import org.nl.acs.device_driver.RouteableDeviceDriver; |
|
|
import org.nl.acs.device_driver.RouteableDeviceDriver; |
|
|
|
|
|
import org.nl.acs.device_driver.StandardRequestMethod; |
|
|
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; |
|
|
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; |
|
|
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; |
|
|
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; |
|
|
|
|
|
import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; |
|
|
|
|
|
import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; |
|
|
import org.nl.acs.ext.wms.service.AcsToWmsService; |
|
|
import org.nl.acs.ext.wms.service.AcsToWmsService; |
|
|
import org.nl.acs.instruction.service.InstructionService; |
|
|
import org.nl.acs.instruction.service.InstructionService; |
|
|
import org.nl.acs.instruction.service.dto.Instruction; |
|
|
import org.nl.acs.instruction.service.dto.Instruction; |
|
@ -24,12 +29,15 @@ import org.nl.acs.order.service.ProduceshiftorderService; |
|
|
import org.nl.acs.order.service.dto.ProduceshiftorderDto; |
|
|
import org.nl.acs.order.service.dto.ProduceshiftorderDto; |
|
|
import org.nl.acs.route.service.RouteLineService; |
|
|
import org.nl.acs.route.service.RouteLineService; |
|
|
import org.nl.acs.task.service.TaskService; |
|
|
import org.nl.acs.task.service.TaskService; |
|
|
|
|
|
import org.nl.modules.lucene.service.LuceneExecuteLogService; |
|
|
|
|
|
import org.nl.modules.lucene.service.dto.LuceneLogDto; |
|
|
import org.nl.modules.wql.util.SpringContextHolder; |
|
|
import org.nl.modules.wql.util.SpringContextHolder; |
|
|
import org.openscada.opc.lib.da.Server; |
|
|
import org.openscada.opc.lib.da.Server; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.http.HttpStatus; |
|
|
import org.springframework.http.HttpStatus; |
|
|
|
|
|
|
|
|
import java.lang.reflect.Field; |
|
|
import java.lang.reflect.Field; |
|
|
|
|
|
import java.lang.reflect.Method; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -39,9 +47,11 @@ import java.util.*; |
|
|
@Getter |
|
|
@Getter |
|
|
@Setter |
|
|
@Setter |
|
|
@RequiredArgsConstructor |
|
|
@RequiredArgsConstructor |
|
|
public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { |
|
|
public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, StandardRequestMethod { |
|
|
protected ItemProtocol itemProtocol = new ItemProtocol(this); |
|
|
protected ItemProtocol itemProtocol = new ItemProtocol(this); |
|
|
|
|
|
|
|
|
|
|
|
LuceneExecuteLogService lucene = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); |
|
|
|
|
|
|
|
|
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl"); |
|
|
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl"); |
|
|
|
|
|
|
|
|
DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl"); |
|
|
DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl"); |
|
@ -247,6 +257,22 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD |
|
|
List toInstructions; |
|
|
List toInstructions; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (mode > 2 && !requireSucess) { |
|
|
|
|
|
if (ObjectUtil.isNotEmpty(this.device.getExtraValue().get(String.valueOf(mode)))) { |
|
|
|
|
|
String modethod = this.device.getExtraValue().get(String.valueOf(mode)).toString(); |
|
|
|
|
|
try { |
|
|
|
|
|
applyRequest(modethod); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
message = "错误:" + e.getMessage(); |
|
|
|
|
|
this.setIserror(true); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
message = "无效模式请求,驱动未配置此请求方法"; |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
message = "无请求"; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
last_mode = mode; |
|
|
last_mode = mode; |
|
|
last_status = status; |
|
|
last_status = status; |
|
@ -270,6 +296,72 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 请求 |
|
|
|
|
|
* |
|
|
|
|
|
* @param |
|
|
|
|
|
*/ |
|
|
|
|
|
public synchronized boolean applyRequest(String modethod) throws Exception { |
|
|
|
|
|
Object obj1 = this; |
|
|
|
|
|
Date date = new Date(); |
|
|
|
|
|
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { |
|
|
|
|
|
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); |
|
|
|
|
|
return false; |
|
|
|
|
|
} else { |
|
|
|
|
|
this.instruction_require_time = date; |
|
|
|
|
|
Object obj = this.getClass().getDeclaredConstructor().newInstance(); |
|
|
|
|
|
Method method1 = this.getClass().getMethod(modethod, null); |
|
|
|
|
|
method1.invoke(this, null); |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public synchronized boolean order_verify() { |
|
|
|
|
|
if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { |
|
|
|
|
|
ApplyTaskRequest request = new ApplyTaskRequest(); |
|
|
|
|
|
request.setDevice_code(this.getDevice_code()); |
|
|
|
|
|
request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); |
|
|
|
|
|
request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); |
|
|
|
|
|
request.setOrder_code(this.getOrder_No()); |
|
|
|
|
|
message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求LMS..."; |
|
|
|
|
|
lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); |
|
|
|
|
|
ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); |
|
|
|
|
|
|
|
|
|
|
|
if (resp.getCode() == 200) { |
|
|
|
|
|
this.writing(200); |
|
|
|
|
|
this.setRequireSucess(true); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.writing(400); |
|
|
|
|
|
message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求失败" + resp.getMessage();; |
|
|
|
|
|
} |
|
|
|
|
|
lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); |
|
|
|
|
|
} |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public synchronized boolean order_finish() { |
|
|
|
|
|
if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { |
|
|
|
|
|
ApplyTaskRequest request = new ApplyTaskRequest(); |
|
|
|
|
|
request.setDevice_code(this.getDevice_code()); |
|
|
|
|
|
request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); |
|
|
|
|
|
request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); |
|
|
|
|
|
request.setOrder_code(this.getOrder_No()); |
|
|
|
|
|
message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求LMS..."; |
|
|
|
|
|
lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); |
|
|
|
|
|
ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); |
|
|
|
|
|
|
|
|
|
|
|
if (resp.getCode() == 200) { |
|
|
|
|
|
this.writing(200); |
|
|
|
|
|
this.setRequireSucess(true); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.writing(400); |
|
|
|
|
|
message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求失败" + resp.getMessage();; |
|
|
|
|
|
} |
|
|
|
|
|
lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); |
|
|
|
|
|
} |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public boolean exe_error() { |
|
|
public boolean exe_error() { |
|
|
if (this.error == 0) { |
|
|
if (this.error == 0) { |
|
|