剪式ctu入库 流程测试

This commit is contained in:
liuhanqing
2025-07-18 15:24:51 +08:00
parent 448bbfa23d
commit 831a6ce070
11 changed files with 269 additions and 176 deletions

View File

@@ -76,8 +76,15 @@ public class ApiServiceImpl implements IApiService {
@Override @Override
public GenAgvSchedulingTaskResponse genAgvSchedulingTask(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) { public GenAgvSchedulingTaskResponse genAgvSchedulingTask(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
RequestLog requestLog = requestLogService.getRequestLog(GEN_AGV_SCHEDULING_TASK, JSONUtil.toJsonStr(genAgvSchedulingTaskRequest), "生成AGV任务"); RequestLog requestLog = requestLogService.getRequestLog(GEN_AGV_SCHEDULING_TASK, "生成AGV任务", JSONUtil.toJsonStr(genAgvSchedulingTaskRequest));
if(requestLog.getIsSuccessful().equals("1")){
return BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class); return BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class);
}else {
GenAgvSchedulingTaskResponse response = new GenAgvSchedulingTaskResponse();
response.setCode(500);
response.setMessage("请求失败");
return BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class);
}
} }
@Override @Override
@@ -232,11 +239,16 @@ public class ApiServiceImpl implements IApiService {
public AjaxResult receiveOutMydoJob(MydoJob mydoJob) { public AjaxResult receiveOutMydoJob(MydoJob mydoJob) {
AgvQueue agvQueue = new AgvQueue(); AgvQueue agvQueue = new AgvQueue();
String reqCode = IdUtil.fastSimpleUUID(); String reqCode = IdUtil.fastSimpleUUID();
String taskCode = IdUtil.fastSimpleUUID();
agvQueue.setReqCode(reqCode); agvQueue.setReqCode(reqCode);
agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date())); agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
agvQueue.setAgvType("CTU"); agvQueue.setAgvType("CTU");
agvQueue.setPositionCode1(mydoJob.getCargoSpaceId()); agvQueue.setPositionCode1(mydoJob.getCargoSpaceId());
agvQueue.setPositionCode2(mydoJob.getExitId()); agvQueue.setPositionCode2(mydoJob.getExitId());
agvQueue.setTaskCode(taskCode);
agvQueue.setWmsTaskType("2");
agvQueue.setWmsTraycode(mydoJob.getTrayCode());
agvQueue.setWmsTaskNo(mydoJob.getTaskNo());
int i = agvQueueService.insertAgvQueue(agvQueue); int i = agvQueueService.insertAgvQueue(agvQueue);
if (i > 0) { if (i > 0) {
log.info("向AGV下任务成功"); log.info("向AGV下任务成功");

View File

@@ -77,14 +77,15 @@ public class ScheduleThread {
public void startAllThread2() { public void startAllThread2() {
//臂式入库线程调度 //臂式入库线程调度
bsInSsjThread.getThread().start(); bsInSsjThread.getThread().start();
//臂式出库线程调度
bsOutSsjThread.getThread().start();
//臂式出库到位线程调度-wms电子屏交互
bsPickSsjThread.getThread().start();
//剪式入库线程调度 //剪式入库线程调度
//jsInSsjThread.getThread().start(); //jsInSsjThread.getThread().start();
//臂式出库线程调度
//bsOutSsjThread.getThread().start();
//剪式出库线程调度 //剪式出库线程调度
//jsOutSsjThread.getThread().start(); //jsOutSsjThread.getThread().start();
//臂式出库到位线程调度-wms电子屏交互
//bsPickSsjThread.getThread().start();
//剪上出库到位线程调度-wms电子屏交互 //剪上出库到位线程调度-wms电子屏交互
//jsPickSsjThread.getThread().start(); //jsPickSsjThread.getThread().start();
} }

View File

@@ -57,357 +57,357 @@ public class PlcRead implements Runnable {
case "G5011": case "G5011":
// 处理 G5011 // 处理 G5011
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5012": case "G5012":
// 处理 G5012 // 处理 G5012
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5016": case "G5016":
// 处理 G5016 // 处理 G5016
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5017": case "G5017":
// 处理 G5017 // 处理 G5017
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5002": case "G5002":
// 处理 G5002 // 处理 G5002
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5003": case "G5003":
// 处理 G5003 // 处理 G5003
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5007": case "G5007":
// 处理 G5007 // 处理 G5007
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5008": case "G5008":
// 处理 G5008 // 处理 G5008
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3011": case "G3011":
// 处理 G3011 // 处理 G3011
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3012": case "G3012":
// 处理 G3012 // 处理 G3012
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4007": case "G4007":
// 处理 G4007 // 处理 G4007
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4008": case "G4008":
// 处理 G4008 // 处理 G4008
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4016": case "G4016":
// 处理 G4016 // 处理 G4016
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4017": case "G4017":
// 处理 G4017 // 处理 G4017
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4011": case "G4011":
// 处理 G4011 // 处理 G4011
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4012": case "G4012":
// 处理 G4012 // 处理 G4012
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4002": case "G4002":
// 处理 G4002 // 处理 G4002
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4003": case "G4003":
// 处理 G4003 // 处理 G4003
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3002": case "G3002":
// 处理 G3002 // 处理 G3002
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3003": case "G3003":
// 处理 G3003 // 处理 G3003
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2002": case "G2002":
// 处理 G2002 // 处理 G2002
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2003": case "G2003":
// 处理 G2003 // 处理 G2003
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1011": case "G1011":
// 处理 G1011 // 处理 G1011
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3016": case "G3016":
// 处理 G3016 // 处理 G3016
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3017": case "G3017":
// 处理 G3017 // 处理 G3017
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3007": case "G3007":
// 处理 G3007 // 处理 G3007
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3008": case "G3008":
// 处理 G3008 // 处理 G3008
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1007": case "G1007":
// 处理 G1007 // 处理 G1007
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1008": case "G1008":
// 处理 G1008 // 处理 G1008
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1005": case "G1005":
// 处理 G1005 // 处理 G1005
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1001": case "G1001":
// 处理 G1001 // 处理 G1001
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1002": case "G1002":
// 处理 G1002 // 处理 G1002
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2010": case "G2010":
// 处理 G2010 // 处理 G2010
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2011": case "G2011":
// 处理 G2011 // 处理 G2011
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1003": case "G1003":
// 处理 G1003 // 处理 G1003
readAddress = "DB501.0"; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1009": case "G1009":
// 处理 G1009 // 处理 G1009
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2012": case "G2012":
// 处理 G2012 // 处理 G2012
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3009": case "G3009":
// 处理 G3009 // 处理 G3009
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3018": case "G3018":
// 处理 G3018 // 处理 G3018
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4009": case "G4009":
// 处理 G4009 // 处理 G4009
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4018": case "G4018":
// 处理 G4018 // 处理 G4018
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5009": case "G5009":
// 处理 G5009 // 处理 G5009
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5018": case "G5018":
// 处理 G5018 // 处理 G5018
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5013": case "G5013":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5014": case "G5014":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5015": case "G5015":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5004": case "G5004":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5005": case "G5005":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5006": case "G5006":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4013": case "G4013":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4014": case "G4014":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4015": case "G4015":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4004": case "G4004":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4005": case "G4005":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4006": case "G4006":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1012": case "G1012":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3004": case "G3004":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3005": case "G3005":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3006": case "G3006":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3013": case "G3013":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3014": case "G3014":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3015": case "G3015":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1006": case "G1006":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2004": case "G2004":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2005": case "G2005":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2006": case "G2006":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2007": case "G2007":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2008": case "G2008":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2009": case "G2009":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1004": case "G1004":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G1010": case "G1010":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G2001": case "G2001":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3001": case "G3001":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G3010": case "G3010":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4001": case "G4001":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G4010": case "G4010":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5001": case "G5001":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
case "G5010": case "G5010":
readAddress = "DB501." + baseOffset; readAddress = "DB501." + baseOffset;
writeAddress = ""; writeAddress = "DB502." + baseOffset;
break; break;
default: default:
continue; continue;
@@ -453,7 +453,7 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcOtherSsj(DeviceSsj ssjDevice) { private void readPlcOtherSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);
@@ -471,7 +471,7 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcInSsj(DeviceSsj ssjDevice) { private void readPlcInSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);
@@ -489,7 +489,7 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcPickSsj(DeviceSsj ssjDevice) { private void readPlcPickSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);
@@ -507,7 +507,7 @@ public class PlcRead implements Runnable {
* @param ssjDevice * @param ssjDevice
*/ */
private void readPlcOutSsj(DeviceSsj ssjDevice) { private void readPlcOutSsj(DeviceSsj ssjDevice) {
OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); OperateResultExOne<byte[]> read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("20"));
String ddsx1 = "0"; String ddsx1 = "0";
if (read2.IsSuccess) { if (read2.IsSuccess) {
ddsx1 = SoftBasic.ByteToHexString(read2.Content); ddsx1 = SoftBasic.ByteToHexString(read2.Content);

View File

@@ -46,7 +46,7 @@ public class ParseUtil {
*/ */
public static String optString(int start, String data) { public static String optString(int start, String data) {
byte[] bytes = SoftBasic.HexStringToBytes(data.substring(start * 2, (start + 12) * 2)); byte[] bytes = SoftBasic.HexStringToBytes(data.substring(start * 2, (start + 7) * 2));
return Tools.bytetostringtool(bytes); return Tools.bytetostringtool(bytes);
} }

View File

@@ -109,23 +109,23 @@ public class BsInSsjThread implements Runnable {
* @param lljCode * @param lljCode
*/ */
private void inLljDispatch(String lljCode) { private void inLljDispatch(String lljCode) {
//判断是否生成队列
AgvQueue agvQueueParam = new AgvQueue();
agvQueueParam.setPositionCode1(lljCode);
agvQueueParam.setStatus("0");
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueueParam);
if (CollUtil.isEmpty(agvQueues)){
//查询流利架未开始的作业 //查询流利架未开始的作业
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setStatus("1"); mydoJobParam.setStatus("1");
mydoJobParam.setEntranceId(lljCode); mydoJobParam.setEntranceId(lljCode);
MydoJob mydoJob = apiService.requestEnter(mydoJobParam); MydoJob mydoJob = apiService.requestEnter(mydoJobParam);
if (ObjUtil.isNotNull(mydoJob) && !"6".equals(mydoJob.getExecutionPhase())) { if (ObjUtil.isNotNull(mydoJob)) {
//判断是否生成队列
AgvQueue agvQueueParam = new AgvQueue();
agvQueueParam.setWmsTaskNo(mydoJob.getTaskNo());
agvQueueParam.setPositionCode1(lljCode);
agvQueueParam.setStatus("0");
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueueParam);
if (CollUtil.isEmpty(agvQueues)) {
//生成agv队列 //生成agv队列
AgvQueue agvQueue = createAgvQueue(lljCode, mydoJob); AgvQueue agvQueue = createAgvQueue(lljCode, mydoJob);
//请求任务生成 //请求任务生成
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(mydoJob, agvQueue); GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
//修改wms任务状态 //修改wms任务状态
if (genAgvSchedulingTaskResponse.getCode() == 0) { if (genAgvSchedulingTaskResponse.getCode() == 0) {
//修改ctu执行状态 //修改ctu执行状态
@@ -136,15 +136,17 @@ public class BsInSsjThread implements Runnable {
mydoJob.setExecutionPhase("6"); mydoJob.setExecutionPhase("6");
apiService.updateMydoJob(mydoJob); apiService.updateMydoJob(mydoJob);
} }
}
} else { } else {
if (ObjUtil.isNull(mydoJob)) { if (ObjUtil.isNull(mydoJob)) {
log.info("无入库库作业 lljCode:{}", lljCode); log.info("无入库库作业 lljCode:{}", lljCode);
} }
if ("6".equals(mydoJob.getExecutionPhase())) { if ("3".equals(mydoJob.getStatus())) {
log.info("入库库作业已下发 taskNo:{}", mydoJob.getTaskNo()); log.info("入库库作业已下发 taskNo:{}", mydoJob.getTaskNo());
} }
} }
}
} }
/** /**
@@ -172,7 +174,7 @@ public class BsInSsjThread implements Runnable {
//生成agv队列 //生成agv队列
AgvQueue agvQueue = createAgvQueue(inSsjDevice.getDeviceCode(), mydoJob); AgvQueue agvQueue = createAgvQueue(inSsjDevice.getDeviceCode(), mydoJob);
//请求任务生成 //请求任务生成
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(mydoJob, agvQueue); GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue( agvQueue);
//修改wms任务状态 //修改wms任务状态
if (genAgvSchedulingTaskResponse.getCode() == 0) { if (genAgvSchedulingTaskResponse.getCode() == 0) {
//修改ctu执行状态 //修改ctu执行状态
@@ -183,6 +185,19 @@ public class BsInSsjThread implements Runnable {
} }
} }
}else {
AgvQueue agvQueue = agvQueues.get(0);
if ("0".equals(agvQueue.getStatus())){
//请求任务生成
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
//修改wms任务状态
if (genAgvSchedulingTaskResponse.getCode() == 0) {
//修改ctu执行状态
agvQueue.setStatus("1");
agvQueueService.updateAgvQueue(agvQueue);
log.info("向CTU下入库库作业");
}
}
} }
} }
} }
@@ -223,10 +238,9 @@ public class BsInSsjThread implements Runnable {
/** /**
* 请求海康生成agv任务,并修改wms任务状态 * 请求海康生成agv任务,并修改wms任务状态
* *
* @param mydoJob
* @param agvQueue * @param agvQueue
*/ */
private GenAgvSchedulingTaskResponse requestAgvQueue(MydoJob mydoJob, AgvQueue agvQueue) { private GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue) {
//todo 请求ctu //todo 请求ctu
GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest = new GenAgvSchedulingTaskRequest(); GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest = new GenAgvSchedulingTaskRequest();
genAgvSchedulingTaskRequest.setReqCode(agvQueue.getReqCode()); genAgvSchedulingTaskRequest.setReqCode(agvQueue.getReqCode());
@@ -236,8 +250,7 @@ public class BsInSsjThread implements Runnable {
genAgvSchedulingTaskRequest.setCtnrCode("0"); genAgvSchedulingTaskRequest.setCtnrCode("0");
genAgvSchedulingTaskRequest.setCtnrNum("0"); genAgvSchedulingTaskRequest.setCtnrNum("0");
genAgvSchedulingTaskRequest.setTaskMode("0"); genAgvSchedulingTaskRequest.setTaskMode("0");
genAgvSchedulingTaskRequest.setTaskCode(mydoJob.getTaskNo()); genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getWmsTaskNo());
genAgvSchedulingTaskRequest.setGroupId(mydoJob.getTaskNo());
genAgvSchedulingTaskRequest.setAgvTyp("CTU"); genAgvSchedulingTaskRequest.setAgvTyp("CTU");
genAgvSchedulingTaskRequest.setPositionSelStrategy("0"); genAgvSchedulingTaskRequest.setPositionSelStrategy("0");
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode()); genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());

View File

@@ -75,7 +75,7 @@ public class BsOutSsjThread implements Runnable {
//流利架出口 //流利架出口
for (String ssjCode : ssjCodeList.get(type)) { for (String ssjCode : ssjCodeList.get(type)) {
try { try {
fluentOutDispatch(ssjCode); //fluentOutDispatch(ssjCode);
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }

View File

@@ -3,6 +3,8 @@ package com.ruoyi.schedule.scheduleTask.ssj.bs;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.RequestLog; import com.ruoyi.api.domain.RequestLog;
import com.ruoyi.bas.port.domain.WcsPort;
import com.ruoyi.bas.port.service.IWcsPortService;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.device.agv.service.IAgvQueueService; import com.ruoyi.device.agv.service.IAgvQueueService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
@@ -31,6 +33,7 @@ public class BsPickSsjTread implements Runnable{
private IApiService apiService; private IApiService apiService;
private IAgvQueueService agvQueueService; private IAgvQueueService agvQueueService;
private IWcsPortService wcsPortService;
public boolean isRun = true; public boolean isRun = true;
@@ -38,13 +41,14 @@ public class BsPickSsjTread implements Runnable{
public void init() { public void init() {
ssjCodeList = new HashMap<>(); ssjCodeList = new HashMap<>();
ArrayList<String> ssjCodes = new ArrayList<>(); ArrayList<String> ssjCodes = new ArrayList<>();
ssjCodes.add("G1004"); ssjCodes.add("G1006");
ssjCodes.add("G1010"); ssjCodes.add("G1012");
ssjCodeList.put("pick", ssjCodes); ssjCodeList.put("pick", ssjCodes);
apiService = SpringUtils.getBean(IApiService.class); apiService = SpringUtils.getBean(IApiService.class);
agvQueueService = SpringUtils.getBean(IAgvQueueService.class); agvQueueService = SpringUtils.getBean(IAgvQueueService.class);
wcsPortService = SpringUtils.getBean(IWcsPortService.class);
} }
@@ -73,10 +77,43 @@ public class BsPickSsjTread implements Runnable{
public void pickDispatch(DeviceSsj pickSsjDevice) { public void pickDispatch(DeviceSsj pickSsjDevice) {
if (pickSsjDevice.getDw() == 1 && pickSsjDevice.getTaskNo() > 0) { if (pickSsjDevice.getDw() == 1 && pickSsjDevice.getTaskNo() > 0) {
WcsPort wcsPortParam = new WcsPort();
wcsPortParam.setPortCode(pickSsjDevice.getDeviceCode());
wcsPortParam.setPortType("1");
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0);
if ("0".equals(wcsPort.getStatus())){
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("taskNo", pickSsjDevice.getTaskNo()); param.put("taskNo", pickSsjDevice.getTaskNo());
param.put("wmsType", "2"); param.put("wmsType", "2");
param.put("pickSsj", pickSsjDevice.getDeviceCode());
RequestLog requestLog = apiService.finishMydoJob(AGV_FINISH_URL, "出库任务到达拣选口", param); RequestLog requestLog = apiService.finishMydoJob(AGV_FINISH_URL, "出库任务到达拣选口", param);
if ("1".equals(requestLog.getIsSuccessful())){
wcsPort.setStatus("1");
wcsPortService.updateWcsPort(wcsPort);
}else {
log.error("任务失败{}", requestLog.getErrorDetails());
}
}
}
}
if (pickSsjDevice.getKx() == 1 && pickSsjDevice.getTaskNo() == 0){
WcsPort wcsPortParam = new WcsPort();
wcsPortParam.setPortCode(pickSsjDevice.getDeviceCode());
wcsPortParam.setPortType("1");
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0);
if ("1".equals(wcsPort.getStatus())){
wcsPort.setStatus("0");
wcsPortService.updateWcsPort(wcsPort);
}
}
} }
} }

View File

@@ -107,7 +107,7 @@ public class JsInSsjThread implements Runnable {
//生成agv队列 //生成agv队列
AgvQueue agvQueue = createAgvQueue(inSsjDevice.getDeviceCode(), mydoJob); AgvQueue agvQueue = createAgvQueue(inSsjDevice.getDeviceCode(), mydoJob);
//请求任务生成 //请求任务生成
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(mydoJob, agvQueue); GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
//修改wms任务状态 //修改wms任务状态
if (genAgvSchedulingTaskResponse.getCode() == 0) { if (genAgvSchedulingTaskResponse.getCode() == 0) {
//修改ctu执行状态 //修改ctu执行状态
@@ -118,6 +118,19 @@ public class JsInSsjThread implements Runnable {
} }
} }
}else {
AgvQueue agvQueue = agvQueues.get(0);
if ("0".equals(agvQueue.getStatus())){
//请求任务生成
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
//修改wms任务状态
if (genAgvSchedulingTaskResponse.getCode() == 0) {
//修改ctu执行状态
agvQueue.setStatus("1");
agvQueueService.updateAgvQueue(agvQueue);
log.info("向CTU下入库库作业");
}
}
} }
} }
} }
@@ -158,10 +171,9 @@ public class JsInSsjThread implements Runnable {
/** /**
* 请求海康生成agv任务,并修改wms任务状态 * 请求海康生成agv任务,并修改wms任务状态
* *
* @param mydoJob
* @param agvQueue * @param agvQueue
*/ */
private GenAgvSchedulingTaskResponse requestAgvQueue(MydoJob mydoJob, AgvQueue agvQueue) { private GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue) {
//todo 请求ctu //todo 请求ctu
GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest = new GenAgvSchedulingTaskRequest(); GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest = new GenAgvSchedulingTaskRequest();
genAgvSchedulingTaskRequest.setReqCode(agvQueue.getReqCode()); genAgvSchedulingTaskRequest.setReqCode(agvQueue.getReqCode());
@@ -171,10 +183,10 @@ public class JsInSsjThread implements Runnable {
genAgvSchedulingTaskRequest.setCtnrCode("0"); genAgvSchedulingTaskRequest.setCtnrCode("0");
genAgvSchedulingTaskRequest.setCtnrNum("0"); genAgvSchedulingTaskRequest.setCtnrNum("0");
genAgvSchedulingTaskRequest.setTaskMode("0"); genAgvSchedulingTaskRequest.setTaskMode("0");
genAgvSchedulingTaskRequest.setTaskCode(mydoJob.getTaskNo()); genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getWmsTaskNo());
genAgvSchedulingTaskRequest.setGroupId(mydoJob.getTaskNo());
genAgvSchedulingTaskRequest.setAgvTyp("CTU"); genAgvSchedulingTaskRequest.setAgvTyp("CTU");
genAgvSchedulingTaskRequest.setPositionSelStrategy("0"); genAgvSchedulingTaskRequest.setPositionSelStrategy("0");
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());
return apiService.genAgvSchedulingTask(genAgvSchedulingTaskRequest); return apiService.genAgvSchedulingTask(genAgvSchedulingTaskRequest);
} }
} }

View File

@@ -91,7 +91,8 @@ public class JsOutSsjThread implements Runnable{
* @param outSsjDevice * @param outSsjDevice
*/ */
public void ssjOutDispatch(DeviceSsj outSsjDevice) { public void ssjOutDispatch(DeviceSsj outSsjDevice) {
//查询对应的作业 请求ctu生成对应任务单执行 if (outSsjDevice.getKx()==1){
//查询对应的作业
AgvQueue agvQueue = new AgvQueue(); AgvQueue agvQueue = new AgvQueue();
agvQueue.setPositionCode2(outSsjDevice.getDeviceCode()); agvQueue.setPositionCode2(outSsjDevice.getDeviceCode());
agvQueue.setStatus("0"); agvQueue.setStatus("0");
@@ -101,7 +102,6 @@ public class JsOutSsjThread implements Runnable{
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTaskNo(queue.getWmsTaskNo()); mydoJobParam.setTaskNo(queue.getWmsTaskNo());
mydoJobParam.setTrayCode(queue.getWmsTraycode()); mydoJobParam.setTrayCode(queue.getWmsTraycode());
mydoJobParam.setCargoSpaceId(queue.getPositionCode1());
List<MydoJob> mydoJobList = apiService.getMydoJobList(mydoJobParam); List<MydoJob> mydoJobList = apiService.getMydoJobList(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobList)){ if (CollUtil.isNotEmpty(mydoJobList)){
MydoJob mydoJob = mydoJobList.get(0); MydoJob mydoJob = mydoJobList.get(0);
@@ -113,27 +113,6 @@ public class JsOutSsjThread implements Runnable{
}else { }else {
log.info("ssjCode:{},没有待下发的出库任务", outSsjDevice.getDeviceCode()); log.info("ssjCode:{},没有待下发的出库任务", outSsjDevice.getDeviceCode());
} }
//输送线出库
if (outSsjDevice.getKx()==1){
AgvQueue agvQueue1 = new AgvQueue();
agvQueue1.setPositionCode2(outSsjDevice.getDeviceCode());
agvQueue1.setRequest("1");
List<AgvQueue> agvQueueList1 = agvQueueService.selectAgvQueueList(agvQueue1);
if (CollUtil.isNotEmpty(agvQueueList1)){
for (AgvQueue queue : agvQueueList1) {
if ("1".equals(queue.getRequest())){
//todo 放入继续任务的参数
ContinueTaskRequest continueTaskRequest = new ContinueTaskRequest();
ContinueTaskResponse continueTaskResponse = apiService.continueTask(continueTaskRequest);
if (continueTaskResponse.getCode()==0){
//更新任务单状态
agvQueue1.setRequest("2");
agvQueueService.updateAgvQueue(agvQueue1);
}
}
}
}
} }
} }

View File

@@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
import com.ruoyi.api.domain.RequestLog; import com.ruoyi.api.domain.RequestLog;
import com.ruoyi.api.domain.wcs2wms.MydoJob; import com.ruoyi.api.domain.wcs2wms.MydoJob;
import com.ruoyi.api.service.IApiService; import com.ruoyi.api.service.IApiService;
import com.ruoyi.bas.port.domain.WcsPort;
import com.ruoyi.bas.port.service.IWcsPortService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.device.agv.service.IAgvQueueService; import com.ruoyi.device.agv.service.IAgvQueueService;
@@ -30,6 +32,8 @@ public class JsPickSsjTread implements Runnable {
private IApiService apiService; private IApiService apiService;
private IAgvQueueService agvQueueService; private IAgvQueueService agvQueueService;
private IWcsPortService wcsPortService;
public boolean isRun = true; public boolean isRun = true;
@@ -54,6 +58,8 @@ public class JsPickSsjTread implements Runnable {
apiService = SpringUtils.getBean(IApiService.class); apiService = SpringUtils.getBean(IApiService.class);
agvQueueService = SpringUtils.getBean(IAgvQueueService.class); agvQueueService = SpringUtils.getBean(IAgvQueueService.class);
wcsPortService = SpringUtils.getBean(IWcsPortService.class);
} }
@@ -82,10 +88,43 @@ public class JsPickSsjTread implements Runnable {
public void pickDispatch(DeviceSsj pickSsjDevice) { public void pickDispatch(DeviceSsj pickSsjDevice) {
if (pickSsjDevice.getDw() == 1 && pickSsjDevice.getTaskNo() > 0) { if (pickSsjDevice.getDw() == 1 && pickSsjDevice.getTaskNo() > 0) {
WcsPort wcsPortParam = new WcsPort();
wcsPortParam.setPortCode(pickSsjDevice.getDeviceCode());
wcsPortParam.setPortType("1");
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0);
if ("0".equals(wcsPort.getStatus())){
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("taskNo", pickSsjDevice.getTaskNo()); param.put("taskNo", pickSsjDevice.getTaskNo());
param.put("wmsType", "2"); param.put("wmsType", "2");
param.put("pickSsj", pickSsjDevice.getDeviceCode());
RequestLog requestLog = apiService.finishMydoJob(AGV_FINISH_URL, "出库任务到达拣选口", param); RequestLog requestLog = apiService.finishMydoJob(AGV_FINISH_URL, "出库任务到达拣选口", param);
if ("1".equals(requestLog.getIsSuccessful())){
wcsPort.setStatus("1");
wcsPortService.updateWcsPort(wcsPort);
}else {
log.error("任务失败{}", requestLog.getErrorDetails());
}
}
}
}
if (pickSsjDevice.getKx() == 1 && pickSsjDevice.getTaskNo() == 0){
WcsPort wcsPortParam = new WcsPort();
wcsPortParam.setPortCode(pickSsjDevice.getDeviceCode());
wcsPortParam.setPortType("1");
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0);
if ("1".equals(wcsPort.getStatus())){
wcsPort.setStatus("0");
wcsPortService.updateWcsPort(wcsPort);
}
}
} }
} }

View File

@@ -1,8 +1,8 @@
{ {
"name": "ruoyi", "name": "FLRD",
"version": "3.8.9", "version": "3.8.9",
"description": "若依管理系统", "description": "FORTUCKY WCS SYSTEM",
"author": "若依", "author": "FLRD",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"dev": "vue-cli-service serve", "dev": "vue-cli-service serve",