巷道口输送机下发读值校验
This commit is contained in:
@@ -6,6 +6,7 @@ import java.util.List;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
@@ -157,33 +158,34 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
@Override
|
||||
public boolean taskFinish(Long rwh) {
|
||||
|
||||
MydoJob task = selectMydoJobByTaskNo(rwh);
|
||||
MydoJob mydoJob = selectMydoJobByTaskNo(rwh);
|
||||
mydoJob.setFinishTime(DateUtil.now());
|
||||
|
||||
//插入历史表
|
||||
insertHistory(task.getJobId());
|
||||
insertHistory(mydoJob.getJobId());
|
||||
|
||||
//删除执行中的作业
|
||||
deleteMydoJobByJobId(task.getJobId());
|
||||
deleteMydoJobByJobId(mydoJob.getJobId());
|
||||
|
||||
//移除“可能存在”的堆垛机队列
|
||||
DdjDeviceExecutionQueue queue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByTaskNo(task.getTaskNo());
|
||||
DdjDeviceExecutionQueue queue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByTaskNo(mydoJob.getTaskNo());
|
||||
if (queue != null){
|
||||
ddjDeviceExecutionQueueService.deleteDdjDeviceExecutionQueueByTaskNo(task.getTaskNo());
|
||||
ddjDeviceExecutionQueueService.deleteDdjDeviceExecutionQueueByTaskNo(mydoJob.getTaskNo());
|
||||
}
|
||||
|
||||
//插入回传表
|
||||
JobCallBack jobCallBack = new JobCallBack();
|
||||
jobCallBack.setType(task.getInOrOut());
|
||||
jobCallBack.setMydoJobId(task.getJobId());
|
||||
jobCallBack.setType(mydoJob.getInOrOut());
|
||||
jobCallBack.setMydoJobId(mydoJob.getJobId());
|
||||
jobCallBack.setStatus("0");
|
||||
jobCallBack.setTaskNo(Convert.toLong(task.getTaskNo()));
|
||||
jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo()));
|
||||
jobCallBack.setCreateTime(new Date());
|
||||
jobCallBack.setTaskTypeCode(WMS_TASK_TYPE_FINISH);
|
||||
jobCallBack.setReqCode(UUID.randomUUID().toString().replace("-", ""));
|
||||
jobCallBack.setTaskCode(task.getWmsTaskNo());
|
||||
jobCallBack.setTaskCode(mydoJob.getWmsTaskNo());
|
||||
jobCallBackService.insertJobCallBack(jobCallBack);
|
||||
|
||||
log.info("【任务自动完成】生成历史记录,插入回传列表,作业号:{},wcs任务号:{}", task.getJobId(), rwh);
|
||||
log.info("【任务自动完成】生成历史记录,插入回传列表,作业号:{},wcs任务号:{}", mydoJob.getJobId(), rwh);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -251,6 +253,7 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
|
||||
//生成回传记录
|
||||
MydoJob mydoJob = mydoJobMapper.selectMydoJobByJobId(jobId);
|
||||
mydoJob.setFinishTime(DateUtil.now());
|
||||
mydoJob.setStatus(TASK_STATUS_FINISH_MANUAL);
|
||||
updateMydoJob(mydoJob);
|
||||
|
||||
@@ -277,6 +280,7 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
|
||||
//标记状态为【手动完成】插入历史表
|
||||
mydoJob.setStatus(TASK_STATUS_FINISH_MANUAL);
|
||||
mydoJob.setFinishTime(DateUtil.now());
|
||||
updateMydoJob(mydoJob);
|
||||
mydoJobMapper.insertHistory(mydoJob.getJobId());
|
||||
|
||||
@@ -380,6 +384,7 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
}
|
||||
//标记状态为【手动完成】插入历史表
|
||||
mydoJob.setStatus(TASK_STATUS_FINISH_MANUAL);
|
||||
mydoJob.setFinishTime(DateUtil.now());
|
||||
updateMydoJob(mydoJob);
|
||||
mydoJobMapper.insertHistory(jobId);
|
||||
try {
|
||||
@@ -429,6 +434,7 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
|
||||
//标记状态为【手动作废】插入历史表
|
||||
mydoJob.setStatus(TASK_STATUS_INVALID);
|
||||
mydoJob.setFinishTime(DateUtil.now());
|
||||
updateMydoJob(mydoJob);
|
||||
mydoJobMapper.insertHistory(mydoJob.getJobId());
|
||||
|
||||
@@ -482,6 +488,7 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
|
||||
//标记状态为【手动作废】插入历史表
|
||||
mydoJob.setStatus(TASK_STATUS_INVALID);
|
||||
mydoJob.setFinishTime(DateUtil.now());
|
||||
updateMydoJob(mydoJob);
|
||||
mydoJobMapper.insertHistory(jobId);
|
||||
|
||||
|
||||
@@ -270,9 +270,9 @@ public class DdjThread_1 implements Runnable {
|
||||
ddjDeviceExecutionQueue.setXfsj(DateUtil.formatDateTime(DateUtil.date()));
|
||||
ddjDeviceExecutionQueue.setDdjxf("1");
|
||||
ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
|
||||
log.info("【堆垛机入库】下发任务成功,任务执行中, 任务号:{}", ddjDeviceExecutionQueue.getRwh());
|
||||
log.info("【堆垛机作业】下发任务成功,任务执行中, 任务号:{}", ddjDeviceExecutionQueue.getRwh());
|
||||
} else {
|
||||
log.error("【堆垛机入库】堆垛机下发任务失败,任务号:{},等待重新下发...", ddjDeviceExecutionQueue.getRwh());
|
||||
log.error("【堆垛机作业】堆垛机下发任务失败,任务号:{},等待重新下发...", ddjDeviceExecutionQueue.getRwh());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
package com.ruoyi.schedule.scheduleTask.ssj;
|
||||
|
||||
import HslCommunication.Core.Types.OperateResult;
|
||||
import HslCommunication.Core.Types.OperateResultExOne;
|
||||
import HslCommunication.Profinet.Siemens.SiemensPLCS;
|
||||
import HslCommunication.Profinet.Siemens.SiemensS7Net;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
@@ -54,6 +58,8 @@ public class RoadConvThread implements Runnable {
|
||||
private IDeviceSsjService deviceSsjService;
|
||||
public boolean isRun = true;
|
||||
|
||||
private static SiemensS7Net plcConv = new SiemensS7Net(SiemensPLCS.S1500, "172.16.30.140");
|
||||
|
||||
|
||||
public void init() {
|
||||
ssjCodeList = new HashMap<>();
|
||||
@@ -487,6 +493,15 @@ public class RoadConvThread implements Runnable {
|
||||
//输送机去向值【1】
|
||||
int i = writeToSsj(inSsjDevice.getPlcDbWriteAddress(), mydoJobStockin.getTaskNo(), 1, 1);
|
||||
|
||||
//检查是否生成了当前任务号的堆垛机取货队列
|
||||
// DdjDeviceExecutionQueue queue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByTaskNo(mydoJobStockin.getTaskNo());
|
||||
|
||||
//执行下发后再次读输送机任务号检查是否写入成功
|
||||
boolean sendConvIsSuccess = mydoJobStockin.getTaskNo().equals(getRoadConvTaskNo(inSsjDevice.getDeviceCode()));
|
||||
if (!sendConvIsSuccess){
|
||||
log.info("【更新状态】巷道口输送机{}未读到下发任务号,尝试重新下发,任务号:{}", inSsjDevice.getDeviceCode(), mydoJobStockin.getTaskNo());
|
||||
}
|
||||
|
||||
if (i == 1) {
|
||||
//写入成功则更新执行阶段
|
||||
mydoJobStockin.setStatus(TASK_STATUS_RUNNING);
|
||||
@@ -494,9 +509,9 @@ public class RoadConvThread implements Runnable {
|
||||
// mydoJobStockin.setEntranceId(inSsjDevice.getDeviceCode());
|
||||
mydoJobStockin.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||
mydoJobService.updateMydoJob(mydoJobStockin);
|
||||
log.info("【更新状态】巷道输送机{}下发成功,任务号:{},等待堆垛机取货", inSsjDevice.getDeviceCode(), mydoJobStockin.getTaskNo());
|
||||
log.info("【更新状态】巷道输送机{}入库到位,下发成功,任务号:{},等待堆垛机取货", inSsjDevice.getDeviceCode(), mydoJobStockin.getTaskNo());
|
||||
}else{
|
||||
log.info("【更新状态】巷道输送机{}下发失败,任务号:{},等待重试中...", inSsjDevice.getDeviceCode(), mydoJobStockin.getTaskNo());
|
||||
log.info("【更新状态】巷道输送机{}入库到位,下发失败,任务号:{},等待重试中...", inSsjDevice.getDeviceCode(), mydoJobStockin.getTaskNo());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -711,4 +726,35 @@ public class RoadConvThread implements Runnable {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int getRoadConvTaskNo(String deviceCode){
|
||||
|
||||
String readAddr = "";
|
||||
switch (deviceCode){
|
||||
case "1003":
|
||||
readAddr = "DB501.88";
|
||||
break;
|
||||
case "1005":
|
||||
readAddr = "DB501.116";
|
||||
break;
|
||||
case "1007":
|
||||
readAddr = "DB501.146";
|
||||
break;
|
||||
case "1010":
|
||||
readAddr = "DB501.172";
|
||||
break;
|
||||
}
|
||||
|
||||
OperateResultExOne<Integer> res = plcConv.ReadInt32(readAddr);
|
||||
|
||||
if (res.IsSuccess){
|
||||
return res.Content;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user