现场修改

This commit is contained in:
liuhanqing
2026-02-03 15:46:28 +08:00
parent 6152646e1b
commit c392eb6cf3
21 changed files with 457 additions and 132 deletions

View File

@@ -253,17 +253,29 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface {
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(ddj.getRwh(), ddj.getId());
if (ObjUtil.isNotNull(ddjDeviceExecutionQueue)) {
//请求wms获取任务 并生成队列
AjaxResult result = apiService.selectMydoJobByTrayCodeAndEntranceId(getParamMap(trayCode, Convert.toInt(ddj.getHeight()), Convert.toDouble(ddjDeviceExecutionQueue.getSpare3())));
HashMap<String, Object> paramMap = getParamMap(trayCode, Convert.toInt(ddj.getHeight()), Convert.toDouble(ddjDeviceExecutionQueue.getSpare3()));
AjaxResult result = apiService.selectMydoJobByTrayCodeAndEntranceId(paramMap);
if (result.isSuccess()) {
inJob = BeanUtil.toBean(result.get("data"), MydoJob.class);
inJob.setStatus(TASK_STATUS_CREATE);
inJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ);
inJob.setRoadwayId(Convert.toStr(ddj.getId()));
inJob.setFaultFlag("0");
inJob.setEntranceId(getEntranceId(ddjDeviceExecutionQueue));
inJob.setWarehouseId(Convert.toStr(paramMap.get("warehouseId")));
inJob.setTrayCode(trayCode);
mydoJobService.insertMydoJob(inJob);
} else {
createRollbackQueue(ddj, 2);
log.error(result.get("msg").toString());
if ("没有空货位".equals(result.get("msg").toString())) {
createRollbackQueue(ddj, 3);
} else if ("无入库任务".equals(result.get("msg").toString())) {
createRollbackQueue(ddj, 2);
} else if ("该托盘已有库存".equals(result.get("msg").toString())) {
createRollbackQueue(ddj, 4);
}else {
createRollbackQueue(ddj, 2);
}
}
}
@@ -335,13 +347,17 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface {
DeviceSsj roadWay = PlcSsjRead.deviceSsjMap.get(road);
if (roadWay.getKx() == 1) {
long rwh = roadwayRollback.get(road);
log.info("扫码失败,放回原位 排:{} 列:{} 层:{} 任务号:{}", mbph, mblh, mbch, rwh);
log.info("入库异常 1-未扫到 2-无任务 3-无空货位 4-已存在当前托盘 type{},放回原位 排:{} 列:{} 层:{} 任务号:{}", type, mbph, mblh, mbch, rwh);
DdjDeviceExecutionQueue ddjQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(rwh, ddj.getId());
if (ObjUtil.isNull(ddjQueue)) {
ddjTaskFinish(ddj.getRwh(), ddj.getId(), 2);
if (type == 2) {
rwh = rwh + 100;
} else if (type == 3) {
rwh = rwh + 20;
} else if (type == 4) {
rwh = rwh + 40;
}

View File

@@ -30,4 +30,11 @@ public interface DdjThreadInterface {
* 初始化设备
*/
void init();
/**
* 获取入口ID
* @param ddjDeviceExecutionQueue 设备执行队列
* @return 入口ID
*/
String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue);
}

View File

@@ -113,4 +113,26 @@ public class Ddj1Thread extends BaseDdjThread {
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue pickQueue) {
Integer mbph = pickQueue.getYph();
Integer mblh = pickQueue.getYlh();
Integer mbch = pickQueue.getYch();
String road = "";
for (String roadway : roadwayMap.keySet()) {
List<Integer> integers = roadwayMap.get(roadway);
if (integers.get(0).equals(mbph) && integers.get(1).equals(mblh) && integers.get(2).equals(mbch)) {
road = roadway;
break;
}
}
if ("L2001".equals(road)|| "L2002".equals(road)){
return "1";
}else if ("L2007".equals(road)|| "L2008".equals(road)){
return "2";
}
return "";
}
}

View File

@@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import static com.ruoyi.common.Constant.*;
@@ -109,4 +110,25 @@ public class Ddj2Thread extends BaseDdjThread {
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue pickQueue) {
Integer mbph = pickQueue.getYph();
Integer mblh = pickQueue.getYlh();
Integer mbch = pickQueue.getYch();
String road = "";
for (String roadway : roadwayMap.keySet()) {
List<Integer> integers = roadwayMap.get(roadway);
if (integers.get(0).equals(mbph) && integers.get(1).equals(mblh) && integers.get(2).equals(mbch)) {
road = roadway;
break;
}
}
if ("L2003".equals(road)|| "L2004".equals(road)){
return "1";
}else if ("L2009".equals(road)|| "L2010".equals(road)){
return "2";
}
return "";
}
}

View File

@@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import static com.ruoyi.common.Constant.*;
@@ -92,4 +93,25 @@ public class Ddj3Thread extends BaseDdjThread {
param.setSpare2(exitSsj);
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue pickQueue) {
Integer mbph = pickQueue.getYph();
Integer mblh = pickQueue.getYlh();
Integer mbch = pickQueue.getYch();
String road = "";
for (String roadway : roadwayMap.keySet()) {
List<Integer> integers = roadwayMap.get(roadway);
if (integers.get(0).equals(mbph) && integers.get(1).equals(mblh) && integers.get(2).equals(mbch)) {
road = roadway;
break;
}
}
if ("L2005".equals(road)|| "L2006".equals(road)){
return "1";
}else if ("L2011".equals(road)|| "L2012".equals(road)){
return "2";
}
return "";
}
}

View File

@@ -92,4 +92,9 @@ public class Ddj4Thread extends BaseDdjThread {
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) {
return "1";
}
}

View File

@@ -79,5 +79,10 @@ public class Ddj5Thread extends BaseDdjThread {
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) {
return "1";
}
}

View File

@@ -81,4 +81,9 @@ public class Ddj6Thread extends BaseDdjThread {
return param;
}
@Override
public String getEntranceId(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) {
return "1";
}
}

View File

@@ -45,6 +45,70 @@ public class MonitoringThread implements Runnable {
for (String ssjCode : PlcSsjRead.deviceSsjMap.keySet()) {
DeviceSsj deviceSsj = PlcSsjRead.deviceSsjMap.get(ssjCode);
deviceSsjService.updateDeviceSsj(deviceSsj);
if (deviceSsj.getException() >= 101 && deviceSsj.getException() <= 106) {
BasFaultRecord param = new BasFaultRecord();
param.setTaskNo(Convert.toStr(deviceSsj.getTaskNo()));
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
param.setJobId("0");
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
if (CollUtil.isEmpty(basFaultRecords)) {
BasFaultRecord record = new BasFaultRecord();
record.setId(IdUtil.simpleUUID());
record.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
record.setDeviceName(deviceSsj.getName());
record.setDeviceType("ssj");
record.setTaskNo(Convert.toStr(deviceSsj.getTaskNo()));
record.setStartTime(DateUtil.formatDateTime(new Date()));
record.setFault(Convert.toStr(deviceSsj.getException()));
record.setJobId("0");
basFaultRecordService.insertBasFaultRecord(record);
}
} else if (deviceSsj.getException() == 0) {
//查询记录 更新故障结束时间
BasFaultRecord param = new BasFaultRecord();
param.setTaskNo(Convert.toStr(deviceSsj.getTaskNo()));
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
param.setJobId("0");
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
if (CollUtil.isNotEmpty(basFaultRecords)) {
BasFaultRecord record = basFaultRecords.get(0);
record.setJobId("1");
record.setFinishTime(DateUtil.formatDateTime(new Date()));
basFaultRecordService.updateBasFaultRecord(record);
}
} else if (deviceSsj.getTaskNo() == 0) {
//查询记录 更新故障结束时间
BasFaultRecord param = new BasFaultRecord();
param.setDeviceId(Convert.toStr(deviceSsj.getDeviceCode()));
param.setJobId("0");
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
if (CollUtil.isNotEmpty(basFaultRecords)) {
BasFaultRecord record = basFaultRecords.get(0);
record.setJobId("1");
record.setFinishTime(DateUtil.formatDateTime(new Date()));
basFaultRecordService.updateBasFaultRecord(record);
}
}
/* if (deviceSsj.getException()==101){
//前超长
}
if (deviceSsj.getException()==102){
//后超长
}
if (deviceSsj.getException()==103){
//左超宽
}
if (deviceSsj.getException()==104){
//右超宽
}
if (deviceSsj.getException()==105){
//超高
}
if (deviceSsj.getException()==106){
//称重异常
}*/
}
for (String ddjCode : PlcDdjRead.deviceDdjMap.keySet()) {
MsgDdj msgDdj = PlcDdjRead.deviceDdjMap.get(ddjCode);
@@ -54,6 +118,7 @@ public class MonitoringThread implements Runnable {
BasFaultRecord param = new BasFaultRecord();
param.setTaskNo(Convert.toStr(msgDdj.getRwh()));
param.setDeviceId(Convert.toStr(msgDdj.getId()));
param.setJobId("0");
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
if (CollUtil.isEmpty(basFaultRecords)){
BasFaultRecord record = new BasFaultRecord();
@@ -64,6 +129,7 @@ public class MonitoringThread implements Runnable {
record.setTaskNo(Convert.toStr(msgDdj.getRwh()));
record.setStartTime(DateUtil.formatDateTime(new Date()));
record.setFault(Convert.toStr(msgDdj.getSbzt()));
record.setJobId("0");
basFaultRecordService.insertBasFaultRecord(record);
}
}
@@ -72,13 +138,96 @@ public class MonitoringThread implements Runnable {
BasFaultRecord param = new BasFaultRecord();
param.setTaskNo(Convert.toStr(msgDdj.getRwh()));
param.setDeviceId(Convert.toStr(msgDdj.getId()));
param.setJobId("0");
List<BasFaultRecord> basFaultRecords = basFaultRecordService.selectBasFaultRecordList(param);
if (CollUtil.isNotEmpty(basFaultRecords)){
BasFaultRecord record = basFaultRecords.get(0);
record.setJobId("1");
record.setFinishTime(DateUtil.formatDateTime(new Date()));
basFaultRecordService.updateBasFaultRecord(record);
}
}
/*
private String getZt(int value) {
if (value == 0) {
return "待机";
} else if (value == 1) {
return "工作";
} else if (value == 1031) {
return "急停";
} else if (value == 1032) {
return "货叉不在中位";
} else if (value == 1033) {
return "行走变频报警";
} else if (value == 1034) {
return "升降变频报警";
} else if (value == 1035) {
return "货叉变频报警";
} else if (value == 1036) {
return "货叉变频报警";
} else if (value == 1037) {
return "运行限位故障";
} else if (value == 1038) {
return "升降限位故障";
} else if (value == 1039) {
return "运行不能纠偏";
} else if (value == 1040) {
return "升降不能纠偏";
} else if (value == 1041) {
return "水平测距出错";
} else if (value == 1042) {
return "垂直BPS出错";
} else if (value == 1043) {
return "超速保护";
} else if (value == 1044) {
return "前边超宽";
} else if (value == 1045) {
return "后边超宽";
} else if (value == 1046) {
return "左边歪斜";
} else if (value == 1047) {
return "右边歪斜";
} else if (value == 1048) {
return "超高1";
} else if (value == 1049) {
return "超高2";
} else if (value == 1050) {
return "放货完毕货叉有货";
} else if (value == 1051) {
return "取货时货叉有货";
} else if (value == 1052) {
return "放货目标有货";
} else if (value == 1053) {
return "取货完毕无货";
} else if (value == 1054) {
return "放货时货叉无货";
} else if (value == 1055) {
return "货叉动作超时";
} else if (value == 1056) {
return "货叉不能纠偏";
} else if (value == 1057) {
return "微升降超时";
} else if (value == 1058) {
return "松绳过载";
} else if (value == 1059) {
return "设定超限";
} else if (value == 1060) {
return "取双伸时单伸有货";
} else if (value == 1061) {
return "放双伸时单伸有货";
} else if (value == 1062) {
return "入库输送机任务不符";
} else if (value == 1063) {
return "安全门打开";
} else if (value == 9999) {
return "设备未联机";
}else{
return "未知";
}
}
*/
}
Thread.sleep(1500);
} catch (Exception e) {