流利架出库逻辑

This commit is contained in:
liuhanqing
2025-07-08 17:59:41 +08:00
parent b8e80af9b7
commit dc3010f464
5 changed files with 76 additions and 43 deletions

View File

@@ -1,6 +1,8 @@
package com.ruoyi.schedule.scheduleTask.ssj.bs;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.bas.fluent.domain.BasFluentFrame;
import com.ruoyi.bas.fluent.service.IBasFluentFrameService;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.device.agv.domain.AgvQueue;
import com.ruoyi.device.agv.service.IAgvQueueService;
@@ -27,6 +29,7 @@ public class BsOutSsjThread implements Runnable {
private IApiService apiService;
private IAgvQueueService agvQueueService;
private IBasFluentFrameService basFluentFrameService;
public boolean isRun = true;
@@ -37,9 +40,14 @@ public class BsOutSsjThread implements Runnable {
ssjCodes.add("G1004");
ssjCodes.add("G1010");
ssjCodeList.put("ssjOut", ssjCodes);
ArrayList<String> fluentOut = new ArrayList<>();
fluentOut.add("fluent1");
fluentOut.add("fluent2");
ssjCodeList.put("fluentOut", fluentOut);
apiService = SpringUtils.getBean(IApiService.class);
agvQueueService = SpringUtils.getBean(IAgvQueueService.class);
basFluentFrameService = SpringUtils.getBean(IBasFluentFrameService.class);
}
@Override
@@ -102,7 +110,6 @@ public class BsOutSsjThread implements Runnable {
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTaskNo(queue.getWmsTaskNo());
mydoJobParam.setTrayCode(queue.getWmsTraycode());
mydoJobParam.setCargoSpaceId(queue.getPositionCode1());
List<MydoJob> mydoJobList = apiService.getMydoJobList(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobList)){
MydoJob mydoJob = mydoJobList.get(0);
@@ -122,7 +129,27 @@ public class BsOutSsjThread implements Runnable {
* @param outSsjDevice
*/
public void fluentOutDispatch(String outSsjDevice) {
//查询流利架货位是否
//查询对应的作业
AgvQueue agvQueue = new AgvQueue();
agvQueue.setPositionCode2(outSsjDevice);
agvQueue.setStatus("0");
List<AgvQueue> agvQueueList = agvQueueService.selectAgvQueueList(agvQueue);
for (AgvQueue queue : agvQueueList) {
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTaskNo(queue.getWmsTaskNo());
mydoJobParam.setTrayCode(queue.getWmsTraycode());
List<MydoJob> mydoJobList = apiService.getMydoJobList(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobList)){
MydoJob mydoJob = mydoJobList.get(0);
//修改实际流利架货位
BasFluentFrame basFluentFrame = basFluentFrameService.selectBasFluentFrameOrderByAllotNum(mydoJob.getExitId());
queue.setPositionCode2(basFluentFrame.getLocationName());
agvQueueService.updateAgvQueue(queue);
requestAgvQueue(mydoJob, queue);
}else {
log.info("队列 agvCode {},无对应出库作业", agvQueue.getReqCode());
}
}
}
/**
@@ -140,7 +167,7 @@ public class BsOutSsjThread implements Runnable {
genAgvSchedulingTaskRequest.setCtnrCode("0");
genAgvSchedulingTaskRequest.setCtnrNum("0");
genAgvSchedulingTaskRequest.setTaskMode("0");
genAgvSchedulingTaskRequest.setTaskCode(mydoJob.getTaskNo());
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());
genAgvSchedulingTaskRequest.setGroupId(mydoJob.getTaskNo());
genAgvSchedulingTaskRequest.setAgvTyp("CTU");
genAgvSchedulingTaskRequest.setPositionSelStrategy("0");

View File

@@ -1,6 +1,8 @@
package com.ruoyi.schedule.scheduleTask.ssj.bs;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.RequestLog;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.device.agv.service.IAgvQueueService;
import com.ruoyi.common.core.text.Convert;
@@ -17,6 +19,9 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.ruoyi.common.Constant.AGV_FINISH_URL;
@Slf4j
@@ -68,19 +73,10 @@ public class BsPickSsjTread implements Runnable{
public void pickDispatch(DeviceSsj pickSsjDevice) {
if (pickSsjDevice.getDw() == 1 && pickSsjDevice.getTaskNo() > 0){
Integer taskNo = pickSsjDevice.getTaskNo();
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setStatus("3");
mydoJobParam.setTaskNo(Convert.toStr(taskNo));
mydoJobParam.setExitId(pickSsjDevice.getDeviceCode());
List<MydoJob> mydoJobList = apiService.getMydoJobList(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobList)){
MydoJob mydoJob = mydoJobList.get(0);
if ("4".equals(mydoJob.getExecutionPhase())){
mydoJob.setExecutionPhase("5");
apiService.updateMydoJob(mydoJob);
}
}
Map<String, Object> param = new HashMap<>();
param.put("taskNo", pickSsjDevice.getTaskNo());
param.put("wmsType", "2");
RequestLog requestLog = apiService.finishMydoJob(AGV_FINISH_URL, "出库任务到达拣选口", param);
}
}

View File

@@ -1,6 +1,7 @@
package com.ruoyi.schedule.scheduleTask.ssj.js;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.api.domain.RequestLog;
import com.ruoyi.api.domain.wcs2wms.MydoJob;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.common.core.text.Convert;
@@ -17,6 +18,9 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.ruoyi.common.Constant.AGV_FINISH_URL;
@Slf4j
@@ -78,19 +82,10 @@ public class JsPickSsjTread implements Runnable {
public void pickDispatch(DeviceSsj pickSsjDevice) {
if (pickSsjDevice.getDw() == 1 && pickSsjDevice.getTaskNo() > 0){
Integer taskNo = pickSsjDevice.getTaskNo();
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setStatus("3");
mydoJobParam.setTaskNo(Convert.toStr(taskNo));
mydoJobParam.setExitId(pickSsjDevice.getDeviceCode());
List<MydoJob> mydoJobList = apiService.getMydoJobList(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobList)){
MydoJob mydoJob = mydoJobList.get(0);
if ("4".equals(mydoJob.getExecutionPhase())){
mydoJob.setExecutionPhase("5");
apiService.updateMydoJob(mydoJob);
}
}
Map<String, Object> param = new HashMap<>();
param.put("taskNo", pickSsjDevice.getTaskNo());
param.put("wmsType", "2");
RequestLog requestLog = apiService.finishMydoJob(AGV_FINISH_URL, "出库任务到达拣选口", param);
}
}