产线输送机

This commit is contained in:
张怡蓉
2025-09-26 14:09:22 +08:00
parent 40d3feff1a
commit c0fc8683fd
7 changed files with 32 additions and 17 deletions

View File

@@ -13,7 +13,6 @@ public class Constant {
public static final String GEN_AGV_SCHEDULING_TASK = RCS_BASE_URL+"genAgvSchedulingTask";;
public static final String CREATE_IN_MYDO_JOB_URL = WMS_BASE_URL+"requestEnterByTrayCode";
public static final String REQUEST_MYDO_JOB_URL = WMS_BASE_URL+"requestByNoTrayCode";
public static final String RE_ASSIGN_URL = WMS_BASE_URL+"reAssign";
public static final String RE_MATERIAL_URL = WMS_BASE_URL+"reMaterial";

View File

@@ -45,6 +45,11 @@ public interface MydoJobMapper
*/
public int updateMydoJob(MydoJob mydoJob);
/**
* 按任务号查作业
*/
public MydoJob selectMydoJobByTaskNo(String taskNo);
/**
* 删除作业信息
*

View File

@@ -98,7 +98,8 @@ public class MydoJobServiceImpl implements IMydoJobService
@Override
public MydoJob selectMydoJobByTaskNo(Long rwh) {
return null;
String s = String.valueOf(rwh);
return mydoJobMapper.selectMydoJobByTaskNo(s);
}
@Override

View File

@@ -94,7 +94,7 @@ public class Floor2InSsjThread implements Runnable {
//如果输送机空闲
if (inSsjDevice.getKx() == 1) {
AgvQueue agvQueue = new AgvQueue();
agvQueue.setStatus("5");
agvQueue.setStatus("5");//请求放货
agvQueue.setPositionCode2(inSsjDevice.getDeviceCode());
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueue);
//不允许放货
@@ -110,6 +110,7 @@ public class Floor2InSsjThread implements Runnable {
log.info("设备:{} 位置:{} 任务号:{} 请求放货成功", inSsjDevice.getDeviceCode(), "输送线", agvQueues.get(0).getTaskCode());
AjaxResult ajaxResult = apiService.continueTask(agvQueues.get(0));
if(ajaxResult.isSuccess()) {
log.info("下发agv允许放货成功"+agvQueues.get(0).getWmsTaskNo());
agvQueues.get(0).setStatus("6");
agvQueueService.updateAgvQueue(agvQueues.get(0));
}
@@ -119,7 +120,7 @@ public class Floor2InSsjThread implements Runnable {
//入库下发输送线
if(inSsjDevice.getKx()==0 && inSsjDevice.getTaskNo()==0){
AgvQueue agvQueue = new AgvQueue();
agvQueue.setStatus("7");
agvQueue.setStatus("7"); //end
agvQueue.setPositionCode2(inSsjDevice.getDeviceCode());
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueue);
if(agvQueues.size()!=0) {

View File

@@ -120,7 +120,7 @@ public class Floor2OutSsjThread implements Runnable {
ddjDeviceExecutionQueue.setDdjxf("0");
ddjDeviceExecutionQueue.setMlfs(5);
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_3);
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_1);
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
mydoJob.setExecutionPhase(TASK_EP_DDJ);

View File

@@ -162,7 +162,7 @@ public class LineSsjThread implements Runnable {
} else {
//没有,请求错误接口,找作业,返回成功,//拿到正常作业,插到wcs作业表,下发给输送机任务号,覆盖任务号,shibai...
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("traySize", SsjDevice.getTraySize());
paramMap.put("size", SsjDevice.getTraySize());
AjaxResult ajaxResult = apiService.selectMydoJobByNoTrayCode(paramMap);
if (ajaxResult.isSuccess()) {
MydoJob mydoJob2 = (MydoJob) ajaxResult.get("mydoJob");
@@ -188,16 +188,16 @@ public class LineSsjThread implements Runnable {
if (SsjDevice.getDw() == 1 && SsjDevice.getTraySize() != 0 && StrUtil.isNotBlank(SsjDevice.getTrayCode()) && SsjDevice.getTaskNo() > 1000) {
log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}", SsjDevice.getDeviceCode(), "产线", SsjDevice.getTrayCode(), SsjDevice.getTraySize());
log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}", SsjDevice.getDeviceCode(), "产线收到wcs任务号", SsjDevice.getTrayCode(), SsjDevice.getTraySize());
//任务号查wcs作业,查巷道,看目标输送线是否空闲,查是否有出库作业,生成agv队列
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(SsjDevice.getTaskNo()));
String deviceCode = "";
if (mydoJob != null) {
if ("1".equals(mydoJob.getRoadwayId())) {
deviceCode = "L1011";
} else {
deviceCode = "L1012";
} else {
deviceCode = "L1011";
}
int kx = deviceSsjMap.get(deviceCode).getKx();
MydoJob mydoJob1 = new MydoJob();
@@ -205,17 +205,21 @@ public class LineSsjThread implements Runnable {
mydoJob1.setStatus("3");
mydoJob1.setExitId(deviceCode);
List<MydoJob> mydoJob2 = mydoJobService.selectInOrOutMydoJobList(mydoJob1);
if (mydoJob2.size() == 0 && kx == 1 && "1".equals(mydoJob.getStatus())) {
if (mydoJob2.size() == 0 && kx == 1) {
//查是否有队列,如果有了请求放货修改为允许放货
AgvQueue agvQueue = agvQueueService.selectAgvQueueByTaskCode(mydoJob.getJobId());
if (agvQueue != null && "1".equals(agvQueue.getStatus())) {
AjaxResult ajaxResult = apiService.continueTask(agvQueue);
if (ajaxResult.isSuccess()) {
agvQueue.setStatus("2");
agvQueueService.updateAgvQueue(agvQueue);
}
if (agvQueue != null && "1".equals(agvQueue.getStatus()) && "3".equals(mydoJob.getStatus()) ) {
} else {
AjaxResult ajaxResult = apiService.continueTask(agvQueue);
if (ajaxResult.isSuccess()) {
log.info("给agv下发允许取货继续任务成功"+agvQueue.getWmsTaskNo());
agvQueue.setStatus("2");
agvQueueService.updateAgvQueue(agvQueue);
}
} else if("1".equals(mydoJob.getStatus()) && agvQueue==null){
HashMap<String, String> paramMap = new HashMap<>();
paramMap.put("trayCode", mydoJob.getTrayCode());
paramMap.put("taskNo", mydoJob.getJobId());

View File

@@ -53,6 +53,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectMydoJobVo"/>
where job_id = #{jobId}
</select>
<select id="selectMydoJobByTaskNo" parameterType="String" resultMap="MydoJobResult">
<include refid="selectMydoJobVo"/>
where task_no = #{taskNo}
</select>
<select id="ddjTaskFinish" parameterType="java.util.Map" statementType="CALLABLE">
{call proc_mydojob_finish(
#{v_rwh,mode=IN,jdbcType=INTEGER},