add: 木箱入库、装箱入库、空木箱出库驱动开发(后端)
This commit is contained in:
@@ -1367,6 +1367,7 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
|||||||
@Override
|
@Override
|
||||||
public JSONObject queryDriverConfigByDeviceId(String device_id, String driver_code) {
|
public JSONObject queryDriverConfigByDeviceId(String device_id, String driver_code) {
|
||||||
final JSONObject extraObj = new JSONObject();
|
final JSONObject extraObj = new JSONObject();
|
||||||
|
|
||||||
DeviceDto dto = this.findById(device_id);
|
DeviceDto dto = this.findById(device_id);
|
||||||
if (ObjectUtil.isNull(dto)) {
|
if (ObjectUtil.isNull(dto)) {
|
||||||
return new JSONObject();
|
return new JSONObject();
|
||||||
@@ -1386,7 +1387,6 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// JSONArray arr = WQLObject.getWQLObject("acs_device_extra").query("filed_type ='01' and device_id = '" + device_id + "'").getResultJSONArray(0);
|
|
||||||
List<DeviceExtra> deviceExtraList = new LambdaQueryChainWrapper<>(deviceExtraMapper)
|
List<DeviceExtra> deviceExtraList = new LambdaQueryChainWrapper<>(deviceExtraMapper)
|
||||||
.eq(DeviceExtra::getDevice_id, device_id)
|
.eq(DeviceExtra::getDevice_id, device_id)
|
||||||
.eq(DeviceExtra::getFiled_type, "01")
|
.eq(DeviceExtra::getFiled_type, "01")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.acs.device_driver.one_conveyor.box_out_subvolumes_conveyor;
|
package org.nl.acs.device_driver.one_conveyor.box_subvolumes_conveyor;
|
||||||
|
|
||||||
import org.nl.acs.device.device_driver.standard_inspect.ItemDto;
|
import org.nl.acs.device.device_driver.standard_inspect.ItemDto;
|
||||||
import org.nl.acs.device.domain.Device;
|
import org.nl.acs.device.domain.Device;
|
||||||
@@ -16,7 +16,7 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class BoxOutSubvolumesConveyorDefination implements OpcDeviceDriverDefination {
|
public class BoxSubvolumesConveyorDefination implements OpcDeviceDriverDefination {
|
||||||
@Override
|
@Override
|
||||||
public String getDriverCode() {
|
public String getDriverCode() {
|
||||||
return "box_out_subvolumes_conveyor";
|
return "box_out_subvolumes_conveyor";
|
||||||
@@ -34,13 +34,13 @@ public class BoxOutSubvolumesConveyorDefination implements OpcDeviceDriverDefina
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DeviceDriver getDriverInstance(Device device) {
|
public DeviceDriver getDriverInstance(Device device) {
|
||||||
return (new BoxOutSubvolumesConveyorDeviceDriver()).setDevice(device).setDriverDefination(this);
|
return (new BoxSubvolumesConveyorDeviceDriver()).setDevice(device).setDriverDefination(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Class<? extends DeviceDriver> getDeviceDriverType() {
|
public Class<? extends DeviceDriver> getDeviceDriverType() {
|
||||||
return BoxOutSubvolumesConveyorDeviceDriver.class;
|
return BoxSubvolumesConveyorDeviceDriver.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.acs.device_driver.one_conveyor.box_out_subvolumes_conveyor;
|
package org.nl.acs.device_driver.one_conveyor.box_subvolumes_conveyor;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
@@ -20,7 +20,6 @@ import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
|||||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||||
import org.nl.acs.history.ErrorUtil;
|
import org.nl.acs.history.ErrorUtil;
|
||||||
import org.nl.acs.history.service.DeviceErrorLogService;
|
import org.nl.acs.history.service.DeviceErrorLogService;
|
||||||
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
|
|
||||||
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
||||||
import org.nl.acs.instruction.domain.Instruction;
|
import org.nl.acs.instruction.domain.Instruction;
|
||||||
import org.nl.acs.instruction.service.InstructionService;
|
import org.nl.acs.instruction.service.InstructionService;
|
||||||
@@ -44,7 +43,7 @@ import java.util.concurrent.ThreadPoolExecutor;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Data
|
@Data
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class BoxOutSubvolumesConveyorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, FeedLmsRealFailed {
|
public class BoxSubvolumesConveyorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, FeedLmsRealFailed {
|
||||||
private final static ThreadPoolExecutor EXECUTOR = ThreadPoolExecutorUtil.getPoll();
|
private final static ThreadPoolExecutor EXECUTOR = ThreadPoolExecutorUtil.getPoll();
|
||||||
protected ItemProtocol itemProtocol = new ItemProtocol(this);
|
protected ItemProtocol itemProtocol = new ItemProtocol(this);
|
||||||
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
|
InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.acs.device_driver.one_conveyor.box_out_subvolumes_conveyor;
|
package org.nl.acs.device_driver.one_conveyor.box_subvolumes_conveyor;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -72,14 +72,14 @@ public class ItemProtocol {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private BoxOutSubvolumesConveyorDeviceDriver driver;
|
private BoxSubvolumesConveyorDeviceDriver driver;
|
||||||
|
|
||||||
public int getContainer_type() {
|
public int getContainer_type() {
|
||||||
return this.getOpcIntegerValue(item_container_type);
|
return this.getOpcIntegerValue(item_container_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ItemProtocol(BoxOutSubvolumesConveyorDeviceDriver driver) {
|
public ItemProtocol(BoxSubvolumesConveyorDeviceDriver driver) {
|
||||||
this.driver = driver;
|
this.driver = driver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
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 com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -18,6 +19,8 @@ import org.nl.acs.device_driver.FeedLmsRealFailed;
|
|||||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||||
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.enums.StorageTypeEnum;
|
||||||
|
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||||
import org.nl.acs.history.ErrorUtil;
|
import org.nl.acs.history.ErrorUtil;
|
||||||
import org.nl.acs.history.service.DeviceErrorLogService;
|
import org.nl.acs.history.service.DeviceErrorLogService;
|
||||||
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
||||||
@@ -59,6 +62,8 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
|
|
||||||
DeviceErrorLogService errorLogServer = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
|
DeviceErrorLogService errorLogServer = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
|
||||||
|
|
||||||
|
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
|
||||||
|
|
||||||
//工作模式
|
//工作模式
|
||||||
int mode = 0;
|
int mode = 0;
|
||||||
int last_mode = 0;
|
int last_mode = 0;
|
||||||
@@ -224,6 +229,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
if (error != last_error) {
|
if (error != last_error) {
|
||||||
|
|
||||||
//存在报警信号,则下发去异常处理位的任务
|
//存在报警信号,则下发去异常处理位的任务
|
||||||
|
applyErrorTask();
|
||||||
|
|
||||||
logServer.deviceItemValue(this.device_code, "error", String.valueOf(error));
|
logServer.deviceItemValue(this.device_code, "error", String.valueOf(error));
|
||||||
logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error);
|
logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error);
|
||||||
@@ -259,7 +265,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
List toInstructions;
|
List toInstructions;
|
||||||
//木箱入库申请入库任务
|
//木箱入库申请入库任务
|
||||||
if (mode == 6 && !requireSucess){
|
if (mode == 6 && !requireSucess){
|
||||||
|
applyIn();
|
||||||
}
|
}
|
||||||
|
|
||||||
//申请任务
|
//申请任务
|
||||||
@@ -312,6 +318,38 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
last_barcode = barcode;
|
last_barcode = barcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void applyErrorTask() {
|
||||||
|
try {
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("device_code", device_code);
|
||||||
|
param.put("vehicle_code", barcode);
|
||||||
|
param.put("type", StorageTypeEnum.ERROR.getType());
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "木箱入库申请入库任务,参数:" + param);
|
||||||
|
HttpResponse response = acsToWmsService.shipDeviceUpdate(param);
|
||||||
|
if (response == null || response.getStatus() == 200) {
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "木箱入库申请入库任务,接口返回:" + response.body());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void applyIn() {
|
||||||
|
try {
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("device_code", device_code);
|
||||||
|
param.put("vehicle_code", barcode);
|
||||||
|
param.put("type", StorageTypeEnum.STORAGE.getType());
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "木箱入库申请入库任务,参数:" + param);
|
||||||
|
HttpResponse response = acsToWmsService.shipDeviceUpdate(param);
|
||||||
|
if (response == null || response.getStatus() == 200) {
|
||||||
|
logServer.deviceExecuteLog(this.device_code, "", "", "木箱入库申请入库任务,接口返回:" + response.body());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void updateInstruct() {
|
private void updateInstruct() {
|
||||||
if (mode == 3 && task > 0) {
|
if (mode == 3 && task > 0) {
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
@@ -333,6 +371,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,10 +16,9 @@ import org.nl.acs.device.service.impl.DeviceExtraServiceImpl;
|
|||||||
import org.nl.acs.device_driver.DeviceDriver;
|
import org.nl.acs.device_driver.DeviceDriver;
|
||||||
import org.nl.acs.device_driver.FeedLmsRealFailed;
|
import org.nl.acs.device_driver.FeedLmsRealFailed;
|
||||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||||
import org.nl.acs.device_driver.box_manipulator_site.BoxManipulatorSiteDeviceDriver;
|
|
||||||
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.device_driver.one_conveyor.box_out_subvolumes_conveyor.BoxOutSubvolumesConveyorDeviceDriver;
|
import org.nl.acs.device_driver.one_conveyor.box_subvolumes_conveyor.BoxSubvolumesConveyorDeviceDriver;
|
||||||
import org.nl.acs.history.ErrorUtil;
|
import org.nl.acs.history.ErrorUtil;
|
||||||
import org.nl.acs.history.service.DeviceErrorLogService;
|
import org.nl.acs.history.service.DeviceErrorLogService;
|
||||||
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
||||||
@@ -369,7 +368,7 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
} else {
|
} else {
|
||||||
this.instruction_require_time = date;
|
this.instruction_require_time = date;
|
||||||
//找符合条件的任务
|
//找符合条件的任务
|
||||||
BoxOutSubvolumesConveyorDeviceDriver boxOutSubvolumesConveyorDeviceDriver = new BoxOutSubvolumesConveyorDeviceDriver();
|
BoxSubvolumesConveyorDeviceDriver boxOutSubvolumesConveyorDeviceDriver = new BoxSubvolumesConveyorDeviceDriver();
|
||||||
String deviceCode = boxOutSubvolumesConveyorDeviceDriver.getDevice_code();
|
String deviceCode = boxOutSubvolumesConveyorDeviceDriver.getDevice_code();
|
||||||
TaskDto taskDto = taskserver.findByEndCodeAndReady(deviceCode, TaskTypeEnum.Box_Package.getIndex());
|
TaskDto taskDto = taskserver.findByEndCodeAndReady(deviceCode, TaskTypeEnum.Box_Package.getIndex());
|
||||||
if (ObjectUtil.isNotEmpty(taskDto)) {
|
if (ObjectUtil.isNotEmpty(taskDto)) {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import java.util.List;
|
|||||||
public class BoxStorageManipulatorDefination implements OpcDeviceDriverDefination {
|
public class BoxStorageManipulatorDefination implements OpcDeviceDriverDefination {
|
||||||
@Override
|
@Override
|
||||||
public String getDriverCode() {
|
public String getDriverCode() {
|
||||||
return "box_storage";
|
return "box_storage_manipulator";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ import org.nl.acs.device_driver.FeedLmsRealFailed;
|
|||||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||||
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.device_driver.one_conveyor.box_out_subvolumes_conveyor.BoxOutSubvolumesConveyorDeviceDriver;
|
import org.nl.acs.device_driver.one_conveyor.box_subvolumes_conveyor.BoxSubvolumesConveyorDeviceDriver;
|
||||||
import org.nl.acs.device_driver.one_conveyor.box_storage_out_conveyor.BoxStorageOutConveyorDeviceDriver;
|
|
||||||
import org.nl.acs.history.ErrorUtil;
|
import org.nl.acs.history.ErrorUtil;
|
||||||
import org.nl.acs.history.service.DeviceErrorLogService;
|
import org.nl.acs.history.service.DeviceErrorLogService;
|
||||||
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
|
||||||
@@ -324,7 +323,7 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
|
|||||||
} else {
|
} else {
|
||||||
this.instruction_require_time = date;
|
this.instruction_require_time = date;
|
||||||
//找终点为入库输送线工位任务类型为行架的任务
|
//找终点为入库输送线工位任务类型为行架的任务
|
||||||
BoxOutSubvolumesConveyorDeviceDriver boxOutSubvolumesConveyorDeviceDriver = new BoxOutSubvolumesConveyorDeviceDriver();
|
BoxSubvolumesConveyorDeviceDriver boxOutSubvolumesConveyorDeviceDriver = new BoxSubvolumesConveyorDeviceDriver();
|
||||||
String deviceCode = boxOutSubvolumesConveyorDeviceDriver.getDevice_code();
|
String deviceCode = boxOutSubvolumesConveyorDeviceDriver.getDevice_code();
|
||||||
TaskDto taskDto = taskserver.findByEndCodeAndReady(deviceCode, TaskTypeEnum.Box_Storage.getIndex());
|
TaskDto taskDto = taskserver.findByEndCodeAndReady(deviceCode, TaskTypeEnum.Box_Storage.getIndex());
|
||||||
if (ObjectUtil.isNotEmpty(taskDto)) {
|
if (ObjectUtil.isNotEmpty(taskDto)) {
|
||||||
|
|||||||
@@ -1,2 +1,26 @@
|
|||||||
package org.nl.acs.enums;public enum StorageTypeEnum {
|
package org.nl.acs.enums;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum StorageTypeEnum {
|
||||||
|
STORAGE("1", "入库任务"),
|
||||||
|
|
||||||
|
DISKS_IN("2", "空盘入库"),
|
||||||
|
|
||||||
|
DISKS_OUT("3", "空盘出库"),
|
||||||
|
|
||||||
|
ERROR("4", "异常处理位");
|
||||||
|
/**
|
||||||
|
* 索引
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -490,7 +490,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
|||||||
task_code = CodeUtil.getNewCode("TASK_NO");
|
task_code = CodeUtil.getNewCode("TASK_NO");
|
||||||
task_code = CommonFinalParam.HYPHEN_ + task_code;
|
task_code = CommonFinalParam.HYPHEN_ + task_code;
|
||||||
}
|
}
|
||||||
String start_point_code = dto.getStart_point_code();
|
String start_point_code;
|
||||||
String next_point_code = dto.getNext_point_code();
|
String next_point_code = dto.getNext_point_code();
|
||||||
String start_device_code = dto.getStart_device_code();
|
String start_device_code = dto.getStart_device_code();
|
||||||
String next_device_code = dto.getNext_device_code();
|
String next_device_code = dto.getNext_device_code();
|
||||||
|
|||||||
Reference in New Issue
Block a user