rev:更新

This commit is contained in:
2024-06-29 12:56:39 +08:00
parent fd57b85e89
commit 7c92bb94fc
6 changed files with 380 additions and 360 deletions

View File

@@ -48,6 +48,12 @@
<artifactId>lucene-core</artifactId>
<version>8.4.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>

View File

@@ -81,6 +81,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
int task = 0;
//出入库模式
int operation_type = 0;
int last_operation_type = 0;
int height = 0;
int last_mode = 0;
int last_error = 0;
@@ -165,6 +166,10 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
this.execute_log.setResource(this.device_code, this.device_code);
this.execute_log.log("设备:" + device_code + ",last_mode -> mode:" + last_mode + "->" + mode);
}
if (operation_type != last_operation_type) {
this.execute_log.setResource(this.device_code, this.device_code);
this.execute_log.log("设备:" + device_code + ",last_operation_type -> operation_type:" + last_operation_type + "->" + last_operation_type);
}
if (move != last_move) {
this.execute_log.setResource(this.device_code, this.device_code);
this.execute_log.log("设备:" + device_code + ",last_move -> move:" + last_mode + "->" + move);
@@ -188,7 +193,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
inst = instructionService.findByCodeFromCache(String.valueOf(task));
if (inst != null) {
inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code() + " 载具号:" + inst.getVehicle_code();
if(mode == 2){
if (mode == 2) {
if (StrUtil.equals(inst.getInstruction_status(), "1") && StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) {
// try{
// finish_instruction();
@@ -249,27 +254,27 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
if (hasGoods > 0 && error == 0 && !StrUtil.isEmpty(container) && !requireSucess) {
instruction_require(container);
} else {
if(StrUtil.isEmpty(container) ){
message ="申请任务托盘号为空无法申请指令";
if (StrUtil.isEmpty(container)) {
message = "申请任务托盘号为空无法申请指令";
}
if(error > 0){
message ="申请任务error>0无法申请指令";
if (error > 0) {
message = "申请任务error>0无法申请指令";
}
if(requireSucess){
message ="申请任务请求成功标记未复位无法申请指令";
if (requireSucess) {
message = "申请任务请求成功标记未复位无法申请指令";
}
}
if (hasGoods > 0 && error == 0 && !StrUtil.isEmpty(container) && !applySucess) {
instruction_apply(container);
} else {
if(StrUtil.isEmpty(container) ){
message ="申请指令托盘号为空无法申请指令";
if (StrUtil.isEmpty(container)) {
message = "申请指令托盘号为空无法申请指令";
}
if(error > 0){
message ="申请指令error>0无法申请指令";
if (error > 0) {
message = "申请指令error>0无法申请指令";
}
if(applySucess){
message ="申请指令请求成功标记未复位无法申请指令";
if (applySucess) {
message = "申请指令请求成功标记未复位无法申请指令";
}
}
break;
@@ -316,6 +321,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
last_move = move;
last_task = task;
last_height = height;
last_operation_type = operation_type;
}
public boolean exe_error() {
@@ -437,7 +443,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
}
// public boolean instruction_apply() throws Exception {
// public boolean instruction_apply() throws Exception {
// Date date = new Date();
// if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) {
// log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -521,292 +527,302 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver
// }
// return true;
// }
public synchronized boolean instruction_apply(String container_code) throws Exception {
Date date = new Date();
if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return false;
} else {
this.instruction_apply_time = date;
//container_code
TaskDto task = taskserver.findByContainer(container_code);
Instruction inst = instructionService.findByDeviceCodeFromCache(container_code);
if(!ObjectUtil.isEmpty(inst) && StrUtil.equals(inst.getInstruction_status(),"0")){
this.setInst(inst);
writing();
applySucess = true;
this.setContainer("");
return true;
}
if (!ObjectUtil.isEmpty(task)) {
String taskid = task.getTask_id();
String taskcode = task.getTask_code();
String vehiclecode = task.getVehicle_code();
String priority = task.getPriority();
String start_point_code = this.device_code;
String start_device_code = this.device_code;
String route_plan_code = task.getRoute_plan_code();
String next_device_code = "";
public synchronized boolean instruction_apply(String container_code) throws Exception {
Date date = new Date();
if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return false;
} else {
this.instruction_apply_time = date;
//container_code
TaskDto task = taskserver.findByContainer(container_code);
Instruction inst = instructionService.findByDeviceCodeFromCache(container_code);
if (!ObjectUtil.isEmpty(inst) && StrUtil.equals(inst.getInstruction_status(), "0")) {
this.setInst(inst);
writing();
applySucess = true;
this.setContainer("");
return true;
}
if (!ObjectUtil.isEmpty(task)) {
String taskid = task.getTask_id();
String taskcode = task.getTask_code();
String vehiclecode = task.getVehicle_code();
String priority = task.getPriority();
String start_point_code = this.device_code;
String start_device_code = this.device_code;
String route_plan_code = task.getRoute_plan_code();
String next_device_code = "";
/**
* 开始平均分配
*/
String this_device_code = taskserver.queryAssignedByDevice(device_code, task.getNext_device_code());
if (StrUtil.isEmpty(this_device_code)) {
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, task.getNext_device_code(), route_plan_code);
RouteLineDto routeLineDto = shortPathsList.get(0);
/**
* 开始平均分配
*/
String this_device_code = taskserver.queryAssignedByDevice(device_code, task.getNext_device_code());
if (StrUtil.isEmpty(this_device_code)) {
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, task.getNext_device_code(), route_plan_code);
RouteLineDto routeLineDto = shortPathsList.get(0);
String path = routeLineDto.getPath();
String type = routeLineDto.getType();
String[] str = path.split("->");
if (!StrUtil.equals(type, "0")) {
return false;
}
List<String> pathlist = Arrays.asList(str);
int index = 0;
for (int m = 0; m < pathlist.size(); m++) {
if (pathlist.get(m).equals(start_device_code)) {
index = m + 1;
break;
String path = routeLineDto.getPath();
String type = routeLineDto.getType();
String[] str = path.split("->");
if (!StrUtil.equals(type, "0")) {
return false;
}
List<String> pathlist = Arrays.asList(str);
int index = 0;
for (int m = 0; m < pathlist.size(); m++) {
if (pathlist.get(m).equals(start_device_code)) {
index = m + 1;
break;
}
}
next_device_code = pathlist.get(index);
} else {
next_device_code = this_device_code;
}
//校验路由关系
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code);
if (ObjectUtils.isEmpty(shortPathsList)) {
throw new RuntimeException("路由不通!");
}
next_device_code = pathlist.get(index);
} else {
next_device_code = this_device_code;
}
//校验路由关系
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code);
if (ObjectUtils.isEmpty(shortPathsList)) {
throw new RuntimeException("路由不通!");
}
Device startdevice = deviceAppservice.findDeviceByCode(start_device_code);
Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code);
String next_point_code;
if (StrUtil.equals(deviceAppservice.findDeviceTypeByCode(next_device_code), "storage")) {
next_point_code = task.getTo_x() + "-" + task.getTo_y() + "-" + task.getTo_z();
} else {
next_point_code = next_device_code;
}
Device startdevice = deviceAppservice.findDeviceByCode(start_device_code);
Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code);
String next_point_code;
if (StrUtil.equals(deviceAppservice.findDeviceTypeByCode(next_device_code), "storage")) {
next_point_code = task.getTo_x() + "-" + task.getTo_y() + "-" + task.getTo_z();
} else {
next_point_code = next_device_code;
}
Device deviceByCode = deviceAppservice.findDeviceByCode(task.getStart_device_code());
StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver;
if (deviceByCode.getDeviceDriver() instanceof StandardCoveyorControlWithScannerDeviceDriver) {
standardCoveyorControlWithScannerDeviceDriver = (StandardCoveyorControlWithScannerDeviceDriver) deviceByCode.getDeviceDriver();
createLock = standardCoveyorControlWithScannerDeviceDriver.getCreateLock();
}
if (!createLock) {
//几台入库模式的agv 就能生成几个agv_type =3 的指令
//指令类型为3的指令数
List<Instruction> insts = instructionService.queryAgvInstByThree();
Integer agvQty = deviceservice.queryAgvQty();
List<Device> deviceByType = deviceAppservice.findDevice(DeviceType.agv);
if (insts.size() < agvQty) {
String carno = "";
Boolean flag = false;
for (int j = 0; j < deviceByType.size(); j++) {
Device device = deviceByType.get(j);
JMAgvDeviceDriver jmAgvDeviceDriver;
if (device.getDeviceDriver() instanceof JMAgvDeviceDriver) {
jmAgvDeviceDriver = (JMAgvDeviceDriver) device.getDeviceDriver();
String agvTaskType = jmAgvDeviceDriver.getAgvTaskType();
List<Instruction> instructions = instructionService.findAllInstFromCache();
if (instructions.size() == 0) {
if (agvTaskType.equals("0") || agvTaskType.equals("1")) {
carno = device.getDevice_code();
flag = true;
Device deviceByCode = deviceAppservice.findDeviceByCode(task.getStart_device_code());
StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver;
if (deviceByCode.getDeviceDriver() instanceof StandardCoveyorControlWithScannerDeviceDriver) {
standardCoveyorControlWithScannerDeviceDriver = (StandardCoveyorControlWithScannerDeviceDriver) deviceByCode.getDeviceDriver();
createLock = standardCoveyorControlWithScannerDeviceDriver.getCreateLock();
}
if (!createLock) {
//几台入库模式的agv 就能生成几个agv_type =3 的指令
//指令类型为3的指令数
List<Instruction> insts = instructionService.queryAgvInstByThree();
Integer agvQty = deviceservice.queryAgvQty();
List<Device> deviceByType = deviceAppservice.findDevice(DeviceType.agv);
if (insts.size() < agvQty) {
String carno = "";
Boolean flag = false;
for (int j = 0; j < deviceByType.size(); j++) {
Device device = deviceByType.get(j);
JMAgvDeviceDriver jmAgvDeviceDriver;
if (device.getDeviceDriver() instanceof JMAgvDeviceDriver) {
jmAgvDeviceDriver = (JMAgvDeviceDriver) device.getDeviceDriver();
String agvTaskType = jmAgvDeviceDriver.getAgvTaskType();
List<Instruction> instructions = instructionService.findAllInstFromCache();
if (instructions.size() == 0) {
if (agvTaskType.equals("0") || agvTaskType.equals("1")) {
carno = device.getDevice_code();
flag = true;
break;
}
}
for (int z = 0; z < instructions.size(); z++) {
Instruction instruction = instructions.get(z);
if (ObjectUtil.isNotEmpty(instruction.getCarno())
&& instruction.getCarno().equals(device.getDevice_code())) {
break;
} else if (z == instructions.size() - 1 && (agvTaskType.equals("0") || agvTaskType.equals("1"))) {
carno = device.getDevice_code();
flag = true;
break;
}
}
if (flag) {
break;
}
}
for (int z = 0; z < instructions.size(); z++) {
Instruction instruction = instructions.get(z);
if (ObjectUtil.isNotEmpty(instruction.getCarno())
&& instruction.getCarno().equals(device.getDevice_code())) {
break;
} else if (z == instructions.size() - 1 && (agvTaskType.equals("0") || agvTaskType.equals("1"))) {
carno = device.getDevice_code();
flag = true;
break;
}
if (flag) {
Instruction instdto = new Instruction();
instdto.setInstruction_id(IdUtil.simpleUUID());
instdto.setRoute_plan_code(route_plan_code);
instdto.setRemark(task.getRemark());
instdto.setMaterial(task.getMaterial());
instdto.setQuantity(task.getQuantity());
instdto.setTask_id(taskid);
instdto.setTask_code(taskcode);
instdto.setVehicle_code(vehiclecode);
String now = DateUtil.now();
instdto.setCreate_time(now);
instdto.setCreate_by("auto");
instdto.setStart_device_code(start_device_code);
instdto.setNext_device_code(next_device_code);
instdto.setStart_point_code(start_point_code);
instdto.setNext_point_code(next_point_code);
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
//查询关联设备数量
List<String> list = deviceservice.queryLinkDeviceByCode(next_device_code);
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点的指令数量:" + byNextDeviceCode.size() + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "查询此终点的指令数量异常(661)";
return true;
}
int count = 0;
for (int i = 0; i < list.size(); i++) {
String code = list.get(i);
Device device = deviceAppservice.findDeviceByCode(code);
StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver;
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
if (standardCoveyorControlDeviceDriver.getMove() != 0) count += 1;
}
}
if (flag) {
break;
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点关联设备中,有货的设备数量:" + count + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "当前关联的设备中都有货,异常(678)";
return true;
}
instructionService.create(instdto);
Instruction instdto2 = new Instruction();
instdto2.setInstruction_id(IdUtil.simpleUUID());
instdto2.setRoute_plan_code(route_plan_code);
instdto2.setRemark(task.getRemark());
instdto2.setMaterial(task.getMaterial());
instdto2.setQuantity(task.getQuantity());
instdto2.setTask_id(taskid);
instdto2.setTask_code(taskcode);
instdto2.setVehicle_code(vehiclecode);
instdto2.setCreate_time(now);
instdto2.setCreate_by("auto");
instdto2.setStart_device_code(next_device_code);
instdto2.setNext_device_code(task.getNext_device_code());
instdto2.setStart_point_code(next_point_code);
instdto2.setNext_point_code(task.getNext_point_code());
instdto2.setPriority(priority);
instdto2.setInstruction_status("0");
instdto2.setExecute_device_code(start_point_code);
instdto2.setCarno(carno);
instructionService.createSecond(instdto2);
} else {
Instruction instdto = new Instruction();
instdto.setInstruction_id(IdUtil.simpleUUID());
instdto.setRoute_plan_code(route_plan_code);
instdto.setRemark(task.getRemark());
instdto.setMaterial(task.getMaterial());
instdto.setQuantity(task.getQuantity());
instdto.setTask_id(taskid);
instdto.setTask_code(taskcode);
instdto.setVehicle_code(vehiclecode);
String now = DateUtil.now();
instdto.setCreate_time(now);
instdto.setCreate_by("auto");
instdto.setStart_device_code(start_device_code);
instdto.setNext_device_code(next_device_code);
instdto.setStart_point_code(start_point_code);
instdto.setNext_point_code(next_point_code);
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
//查询关联设备数量
List<String> list = deviceservice.queryLinkDeviceByCode(next_device_code);
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点的指令数量:" + byNextDeviceCode.size() + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "查询此终点的指令数量,异常(729)";
return true;
}
int count = 0;
for (int i = 0; i < list.size(); i++) {
String code = list.get(i);
Device device = deviceAppservice.findDeviceByCode(code);
StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver;
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
if (standardCoveyorControlDeviceDriver.getMove() != 0) count += 1;
}
}
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点关联设备中,有货的设备数量:" + count + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "当前关联的设备中都有货的话,就返回异常(746)";
return true;
}
instructionService.create(instdto);
//创建指令后修改任务状态
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
task.setTask_status("1");
JSONObject json = JSONObject.fromObject(task);
taskwo.update(json);
applySucess = true;
this.setContainer("");
return true;
}
}
if (flag) {
Instruction instdto = new Instruction();
instdto.setInstruction_id(IdUtil.simpleUUID());
instdto.setRoute_plan_code(route_plan_code);
instdto.setRemark(task.getRemark());
instdto.setMaterial(task.getMaterial());
instdto.setQuantity(task.getQuantity());
instdto.setTask_id(taskid);
instdto.setTask_code(taskcode);
instdto.setVehicle_code(vehiclecode);
String now = DateUtil.now();
instdto.setCreate_time(now);
instdto.setCreate_by("auto");
instdto.setStart_device_code(start_device_code);
instdto.setNext_device_code(next_device_code);
instdto.setStart_point_code(start_point_code);
instdto.setNext_point_code(next_point_code);
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
//查询关联设备数量
List<String> list = deviceservice.queryLinkDeviceByCode(next_device_code);
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点的指令数量:" + byNextDeviceCode.size() + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
message = "查询此终点的指令数量异常(661)";
return true;
}
int count = 0;
for (int i = 0; i < list.size(); i++) {
String code = list.get(i);
Device device = deviceAppservice.findDeviceByCode(code);
StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver;
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
if (standardCoveyorControlDeviceDriver.getMove() != 0) count += 1;
}
}
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点关联设备中,有货的设备数量:" + count + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
message = "当前关联的设备中都有货,异常(678)";
return true;
}
instructionService.create(instdto);
Instruction instdto2 = new Instruction();
instdto2.setInstruction_id(IdUtil.simpleUUID());
instdto2.setRoute_plan_code(route_plan_code);
instdto2.setRemark(task.getRemark());
instdto2.setMaterial(task.getMaterial());
instdto2.setQuantity(task.getQuantity());
instdto2.setTask_id(taskid);
instdto2.setTask_code(taskcode);
instdto2.setVehicle_code(vehiclecode);
instdto2.setCreate_time(now);
instdto2.setCreate_by("auto");
instdto2.setStart_device_code(next_device_code);
instdto2.setNext_device_code(task.getNext_device_code());
instdto2.setStart_point_code(next_point_code);
instdto2.setNext_point_code(task.getNext_point_code());
instdto2.setPriority(priority);
instdto2.setInstruction_status("0");
instdto2.setExecute_device_code(start_point_code);
instdto2.setCarno(carno);
instructionService.createSecond(instdto2);
} else {
Instruction instdto = new Instruction();
instdto.setInstruction_id(IdUtil.simpleUUID());
instdto.setRoute_plan_code(route_plan_code);
instdto.setRemark(task.getRemark());
instdto.setMaterial(task.getMaterial());
instdto.setQuantity(task.getQuantity());
instdto.setTask_id(taskid);
instdto.setTask_code(taskcode);
instdto.setVehicle_code(vehiclecode);
String now = DateUtil.now();
instdto.setCreate_time(now);
instdto.setCreate_by("auto");
instdto.setStart_device_code(start_device_code);
instdto.setNext_device_code(next_device_code);
instdto.setStart_point_code(start_point_code);
instdto.setNext_point_code(next_point_code);
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
//查询关联设备数量
List<String> list = deviceservice.queryLinkDeviceByCode(next_device_code);
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点的指令数量:" + byNextDeviceCode.size() + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
message = "查询此终点的指令数量,异常(729)";
return true;
}
int count = 0;
for (int i = 0; i < list.size(); i++) {
String code = list.get(i);
Device device = deviceAppservice.findDeviceByCode(code);
StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver;
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
if (standardCoveyorControlDeviceDriver.getMove() != 0) count += 1;
}
}
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点关联设备中,有货的设备数量:" + count + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
message = "当前关联的设备中都有货的话,就返回异常(746)";
return true;
}
instructionService.create(instdto);
//创建指令后修改任务状态
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
task.setTask_status("1");
JSONObject json = JSONObject.fromObject(task);
taskwo.update(json);
applySucess = true;
this.setContainer("");
} else {
Instruction instdto = new Instruction();
instdto.setInstruction_id(IdUtil.simpleUUID());
instdto.setRoute_plan_code(route_plan_code);
instdto.setRemark(task.getRemark());
instdto.setMaterial(task.getMaterial());
instdto.setQuantity(task.getQuantity());
instdto.setTask_id(taskid);
instdto.setTask_code(taskcode);
instdto.setVehicle_code(vehiclecode);
String now = DateUtil.now();
instdto.setCreate_time(now);
instdto.setCreate_by("auto");
instdto.setStart_device_code(start_device_code);
instdto.setNext_device_code(next_device_code);
instdto.setStart_point_code(start_point_code);
instdto.setNext_point_code(next_point_code);
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
//查询关联设备数量
List<String> list = deviceservice.queryLinkDeviceByCode(next_device_code);
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点的指令数量:" + byNextDeviceCode.size() + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "查询此终点的指令数量返回异常(787)";
return true;
}
}
} else {
Instruction instdto = new Instruction();
instdto.setInstruction_id(IdUtil.simpleUUID());
instdto.setRoute_plan_code(route_plan_code);
instdto.setRemark(task.getRemark());
instdto.setMaterial(task.getMaterial());
instdto.setQuantity(task.getQuantity());
instdto.setTask_id(taskid);
instdto.setTask_code(taskcode);
instdto.setVehicle_code(vehiclecode);
String now = DateUtil.now();
instdto.setCreate_time(now);
instdto.setCreate_by("auto");
instdto.setStart_device_code(start_device_code);
instdto.setNext_device_code(next_device_code);
instdto.setStart_point_code(start_point_code);
instdto.setNext_point_code(next_point_code);
instdto.setPriority(priority);
instdto.setInstruction_status("0");
instdto.setExecute_device_code(start_point_code);
//查询关联设备数量
List<String> list = deviceservice.queryLinkDeviceByCode(next_device_code);
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点的指令数量:" + byNextDeviceCode.size() + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
message = "查询此终点的指令数量返回异常(787)";
return true;
}
int count = 0;
for (int i = 0; i < list.size(); i++) {
String code = list.get(i);
Device device = deviceAppservice.findDeviceByCode(code);
StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver;
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
if (standardCoveyorControlDeviceDriver.getMove() != 0) count += 1;
int count = 0;
for (int i = 0; i < list.size(); i++) {
String code = list.get(i);
Device device = deviceAppservice.findDeviceByCode(code);
StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver;
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
if (standardCoveyorControlDeviceDriver.getMove() != 0) count += 1;
}
}
}
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点关联设备中有货的设备数量:" + count + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
message = "当前关联的设备中都有货返回异常(804)";
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点关联设备中,有货的设备数量:" + count + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "当前关联设备中有货返回异常(804)";
return true;
}
instructionService.create(instdto);
//创建指令后修改任务状态
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
task.setTask_status("1");
JSONObject json = JSONObject.fromObject(task);
taskwo.update(json);
applySucess = true;
this.setContainer("");
return true;
}
instructionService.create(instdto);
//创建指令后修改任务状态
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
@@ -815,22 +831,12 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
taskwo.update(json);
applySucess = true;
this.setContainer("");
return true;
} else {
log.info("未找到载具号{}对应任务", container);
}
//创建指令后修改任务状态
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
task.setTask_status("1");
JSONObject json = JSONObject.fromObject(task);
taskwo.update(json);
applySucess = true;
this.setContainer("");
} else {
log.info("未找到载具号{}对应任务", container);
}
return true;
}
return true;
}
public void writing() {
@@ -1047,7 +1053,7 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点的指令数量:" + byNextDeviceCode.size() + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点的指令数量:" + byNextDeviceCode.size() + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "查询此终点的指令数量返回异常(1051)";
return true;
}
@@ -1064,7 +1070,7 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
}
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点关联设备中,有货的设备数量:" + count + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点关联设备中,有货的设备数量:" + count + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "当前关联的设备中都有货返回异常(1068)";
return true;
}
@@ -1116,7 +1122,7 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点的指令数量:" + byNextDeviceCode.size() + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点的指令数量:" + byNextDeviceCode.size() + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "当前关联的设备中都有货返回异常(1120)";
return true;
}
@@ -1133,7 +1139,7 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
}
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点关联设备中,有货的设备数量:" + count + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点关联设备中,有货的设备数量:" + count + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "当前关联的设备中都有货返回异常(1137)";
return true;
}
@@ -1175,7 +1181,7 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
//查询此终点的指令数量
List<Instruction> byNextDeviceCode = instructionService.findByNextDeviceCode(next_device_code);
if (byNextDeviceCode.size() >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点的指令数量:" + byNextDeviceCode.size() + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点的指令数量:" + byNextDeviceCode.size() + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "查询此终点的指令数量返回异常(1179)";
return true;
}
@@ -1192,7 +1198,7 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
}
//如果当前关联的设备中都有货的话,就返回
if (count != 0 && count >= list.size()) {
logServer.log(taskcode,"当前分配的终点设备:"+ next_device_code +"","400","当前终点关联设备中,有货的设备数量:" + count + "","当前终点设备关联设备数量:"+ list.size() +"","","",this.container);
logServer.log(taskcode, "当前分配的终点设备:" + next_device_code + "", "400", "当前终点关联设备中,有货的设备数量:" + count + "", "当前终点设备关联设备数量:" + list.size() + "", "", "", this.container);
message = "当前关联的设备中都有货(1196)";
return true;
}
@@ -1246,15 +1252,21 @@ public synchronized boolean instruction_apply(String container_code) throws Exce
}
public void apply_OutEmpty() {
String result = acsToWmsService.apply_OutEmpty(this.getDeviceCode());
JSONObject jo = JSONObject.fromObject(result);
if (ObjectUtil.isEmpty(jo)) {
message = "接口不通";
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < 6000) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
} else {
if (jo.getInt("status") == 200) {
this.setRequireSucess(true);
this.instruction_require_time = date;
String result = acsToWmsService.apply_OutEmpty(this.getDeviceCode());
JSONObject jo = JSONObject.fromObject(result);
if (ObjectUtil.isEmpty(jo)) {
message = "接口不通";
} else {
this.setRequireSucess(false);
if (jo.getInt("status") == 200) {
this.setRequireSucess(true);
} else {
this.setRequireSucess(false);
}
}
}
}

View File

@@ -256,7 +256,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
try {
result2 = HttpRequest.post(url)
.header("Authorization", "Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiIyNDY0ZDY4OTNjYTA0ZWVmOWI5MWYwYTExYWY1MzYzMyIsImF1dGgiOiJhZG1pbiIsInN1YiI6ImFkbWluIn0.0SW4TtIMZ79RhkWg4YOsm7_hfEWUaQLnuNsRxJI38GQbXxs8mMWBd972jNQIfTMS8DB3aVMH9QyNpSzuRdfD7A")
.body(String.valueOf(jo))
.body(jo.toString())
.execute().body();
System.out.println(result2);
log.info("apply_OutEmpty----返回参数{}", result2);

View File

@@ -949,7 +949,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
//如果此站点为1002并且指令创建锁是打开的话则不需要再次创建
if (ObjectUtil.isNotEmpty(apply_task) && apply_task.equals("true")
&& !scannerDeviceDriver.getCreateLock()) {
obj.setRequest_again("1");
// obj.setRequest_again("1");
}
}
//如果为输送指令
@@ -986,6 +986,12 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
// }
entity.setInstruction_status("2");
JSONObject json = JSONObject.fromObject(entity);
wo.update(json);
removeByCodeFromCache(entity.getInstruction_code());
// =0 则不用再次请求
if (StrUtil.equals(obj.getRequest_again(), "0")) {
@@ -998,9 +1004,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
finishAndCreateNextInst(entity);
}
}
entity.setInstruction_status("2");
JSONObject json = JSONObject.fromObject(entity);
wo.update(json);
//将指令条码写入终点设备中去
if (ObjectUtil.isNotEmpty(vehicle_code)) {
@@ -1022,7 +1026,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
lampThreecolorDeviceDriver.writing(0);
}
}
removeByCodeFromCache(entity.getInstruction_code());
}
@Override

View File

@@ -9,7 +9,6 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON;
import javafx.concurrent.Task;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONArray;
@@ -591,7 +590,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
}
@Override
@Transactional(rollbackFor = Exception.class)
//@Transactional(rollbackFor = Exception.class)
public void update(TaskDto dto) {
TaskDto entity = this.findById(dto.getTask_id());
if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");

View File

@@ -717,7 +717,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setAgv_jobno(String.valueOf(index));
inst.setSend_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
flag = true;
}
@@ -739,7 +739,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (standardInspectSiteDeviceDriver.getMove() != 0) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV请求取货设备{}无货,无法反馈", device_code);
@@ -750,7 +750,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV请求取货设备{}无货,无法反馈", device_code);
@@ -758,13 +758,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
}
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
if (standardCoveyorControlDeviceDriver.getMove() != 0) {
if (standardCoveyorControlDeviceDriver.getMove() != 0 ) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV请求取货设备{}无货,无法反馈", device_code);
log.info("AGV请求取货设备{}无货,无法反馈", device_code, inst.getInstruction_code(), standardCoveyorControlDeviceDriver.getTask());
}
}
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
@@ -772,13 +772,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
if (device.getHas_goods() != 0) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV请求取货设备{}无货,无法反馈", device_code);
@@ -789,7 +789,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
inst.setExecute_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
}
}
@@ -802,7 +802,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
int start_point_address = deviceService.queryAddressBydeviceCode(inst.getStart_point_code());
int next_point_address = deviceService.queryAddressBydeviceCode(inst.getNext_point_code());
data = AgvService.sendAgvOneModeInst(phase, index, start_point_address,next_point_address);
data = AgvService.sendAgvOneModeInst(phase, index, start_point_address, next_point_address);
}
@@ -817,14 +817,14 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver();
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
}
if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) {
standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver();
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
standardCoveyorControlDeviceDriver.writing(1, 2);
standardCoveyorControlDeviceDriver.writing(1, 2);
log.info("AGV取货完成下发输送取货完成指令号{}", ikey);
@@ -834,14 +834,14 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver();
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
}
if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
JSONObject jo = new JSONObject();
jo.put("device_code", device.getDevice_code());
@@ -852,7 +852,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver();
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
}
}
@@ -863,12 +863,12 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
log.info("未找到指令号{}对应的指令", ikey);
break;
}
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
}
// 球磨车间上料完成请求离开
else if (phase == 0x09) {
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
}
//请求放货库位
@@ -899,7 +899,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
}
int next_point_address = deviceService.queryAddressBydeviceCode(next_point);
data = AgvService.sendAgvOneModeInst(phase, index, next_point_address,0);
data = AgvService.sendAgvOneModeInst(phase, index, next_point_address, 0);
TaskDto task = taskService.findByCodeFromCache(inst.getTask_code());
task.setNext_device_code(next_device);
@@ -922,7 +922,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (standardInspectSiteDeviceDriver.getMove() == 0) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV请求放货设备{}有货,无法反馈", device_code);
@@ -931,10 +931,10 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
//空盘堆叠站点
if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) {
standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver();
if (standardEmptyPalletSiteDeviceDriver.getNumber() < Integer.parseInt(emptyNum)) {
if (standardEmptyPalletSiteDeviceDriver.getNumber() <= Integer.parseInt(emptyNum)) {
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV请求放货设备{}数量异常,无法反馈", device_code);
@@ -945,7 +945,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (standardCoveyorControlDeviceDriver.getMove() == 0) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV请求放货设备{}有货,无法反馈", device_code);
@@ -956,7 +956,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
JSONObject jo = new JSONObject();
jo.put("device_code", device.getDevice_code());
@@ -967,7 +967,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (device.getHas_goods() == 0) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
JSONObject jo = new JSONObject();
jo.put("device_code", device.getDevice_code());
@@ -982,7 +982,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
inst.setExecute_status("3");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
}
}
@@ -1001,12 +1001,12 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(dto.getTask_status(), "1") || StrUtil.equals(dto.getTask_status(), "0")) {
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
} else {
inst.setExecute_status("5");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
} else {
log.info("AGV放货完成设备{}数量异常,无法反馈", device_code);
@@ -1017,7 +1017,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (standardInspectSiteDeviceDriver.getMove() != 0) {
inst.setExecute_status("6");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code);
@@ -1028,10 +1028,10 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (standardCoveyorControlDeviceDriver.getMove() != 0) {
inst.setExecute_status("6");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
standardCoveyorControlDeviceDriver.writing(1, 3);
standardCoveyorControlDeviceDriver.writing(1, 3);
log.info("AGV放货完成下发输送放货完成设备号{},指令号{}",device_code, ikey);
log.info("AGV放货完成下发输送放货完成设备号{},指令号{}", device_code, ikey);
flag = true;
} else {
log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code);
@@ -1042,13 +1042,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) {
inst.setExecute_status("6");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
if (device.getHas_goods() != 0) {
inst.setExecute_status("6");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
flag = true;
} else {
log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code);
@@ -1059,7 +1059,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) {
inst.setExecute_status("6");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
}
//任务完毕
@@ -1069,12 +1069,12 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setInstruction_status("2");
instructionService.finish(inst);
}
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
//请求删除任务
else if (phase == 0x30) {
flag = true;
data = AgvService.sendAgvOneModeInst(0x8F, index, 0,0);
data = AgvService.sendAgvOneModeInst(0x8F, index, 0, 0);
}
//任务删除确认
//(需要WCS反馈)
@@ -1083,7 +1083,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (!ObjectUtil.isEmpty(inst)) {
instructionService.cancelNOSendAgv(inst.getInstruction_id());
}
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
} else if (phase == 0x50)//进入区域
{
//开门
@@ -1097,16 +1097,16 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardAutodoorDeviceDriver.setLock_name(String.valueOf(index));
standardAutodoorDeviceDriver.setIs_lock(true);
standardAutodoorDeviceDriver.OpenOrClose("1");
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
//如果是同一辆车发起的二次请求就允许
else if (standardAutodoorDeviceDriver.getAction() == 1
&& standardAutodoorDeviceDriver.getLock_name().equals(String.valueOf(index))){
&& standardAutodoorDeviceDriver.getLock_name().equals(String.valueOf(index))) {
standardAutodoorDeviceDriver.setLock_name(String.valueOf(index));
standardAutodoorDeviceDriver.setIs_lock(true);
standardAutodoorDeviceDriver.OpenOrClose("1");
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
}
if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) {
@@ -1118,7 +1118,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver();
int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action();
if (io_action == 1 || io_action == 3) {
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
}
}
@@ -1132,7 +1132,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (String.valueOf(index).equals(standardAutodoorDeviceDriver.getLock_name()) || !standardAutodoorDeviceDriver.getIs_lock()) {
standardAutodoorDeviceDriver.setLock_name("");
standardAutodoorDeviceDriver.setIs_lock(false);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
}
if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) {
@@ -1144,13 +1144,13 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver();
int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action();
if (io_action == 2 || io_action == 3) {
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
}
}
} else if (phase == 0x64) {
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
//上报异常
else if (phase == 0x67) {
@@ -1240,7 +1240,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
inst.setAgv_jobno(String.valueOf(index));
inst.setSend_status("1");
instructionService.update(inst);
data = AgvService.sendAgvOneModeInst(phase, index, 0,0);
data = AgvService.sendAgvOneModeInst(phase, index, 0, 0);
}
flag = true;
}
@@ -1406,7 +1406,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
}
int next_point_address = deviceService.queryAddressBydeviceCode(next_point);
data = AgvService.sendAgvOneModeInst(phase, index, next_point_address,0);
data = AgvService.sendAgvOneModeInst(phase, index, next_point_address, 0);
TaskDto task = taskService.findByCodeFromCache(inst.getTask_code());
task.setNext_device_code(next_device);
@@ -2605,7 +2605,7 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable {
if (standardEmptyPalletSiteDeviceDriver.getNumber() == Integer.parseInt(emptyNum)) {
if (standardEmptyPalletSiteDeviceDriver.getNumber() == Integer.parseInt(device.getExtraValue().get("max_emptypalletnum").toString())) {
TaskDto dto = taskService.findByStartCode(device_code);
if(!ObjectUtil.isEmpty(dto)){
if (!ObjectUtil.isEmpty(dto)) {
if (StrUtil.equals(dto.getTask_status(), "1")) {
inst.setExecute_status("5");
instructionService.update(inst);