diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java index f68c8f4..eb96a17 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java @@ -38,7 +38,7 @@ public interface IApiService * @param mydoJob * @return */ - public MydoJob requestEnterByEnterId(MydoJob mydoJob); + public List requestEnterByEnterId(MydoJob mydoJob); /** * WMS出库任务推送 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java index 89d3607..eac0272 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java @@ -79,12 +79,12 @@ public class ApiServiceImpl implements IApiService { * @return 返回入库口位置 */ @Override - public MydoJob requestEnterByEnterId(MydoJob mydoJob) { + public List requestEnterByEnterId(MydoJob mydoJob) { RequestLog requestLog = requestLogService.getRequestLog(REQUEST_ENTER_BY_ENTER_ID, "根据入口请求入库", JSONUtil.toJsonStr(mydoJob)); if ("1".equals(requestLog.getIsSuccessful())) { String responseBody = requestLog.getResponseBody(); InterfaceReceive bean = JSONUtil.toBean(responseBody, InterfaceReceive.class); - return JSONUtil.toBean(JSONUtil.toJsonStr(bean.getData()), MydoJob.class); + return JSONUtil.toList(JSONUtil.toJsonStr(bean.getData()), MydoJob.class); } else { return null; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java index b71606e..1599c80 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -112,7 +112,7 @@ public class ScheduleThread { //剪上出库到位线程调度-wms电子屏交互 //jsPickSsjThread.getThread().start(); //监控输送机 - ssjMonitorThread.getThread().start(); + //ssjMonitorThread.getThread().start(); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsInSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsInSsjThread.java index 664d176..78f18e5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsInSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsInSsjThread.java @@ -22,6 +22,8 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Slf4j @@ -86,15 +88,26 @@ public class BsInSsjThread implements Runnable { } break; case "fluentIn": - //流利架 空料箱入库 - for (String lljCode : ssjCodeList.get(type)) { - try { - inLljDispatch(lljCode); - } catch (RuntimeException e) { - log.error(e.getMessage(), e); - } + //查询流利架未开始的作业 + MydoJob mydoJobParam = new MydoJob(); + mydoJobParam.setStatus("1"); + mydoJobParam.setEntranceId("fluent"); + List mydoJobs = apiService.requestEnterByEnterId(mydoJobParam); + if (CollUtil.isNotEmpty(mydoJobs)){ + Map> lljCodeGroup = mydoJobs.stream().collect(Collectors.groupingBy(MydoJob::getEntranceId)); + //流利架 空料箱入库 + for (String lljCode : ssjCodeList.get(type)) { + try { + if (lljCodeGroup.containsKey(lljCode)){ + inLljDispatch(lljCode,lljCodeGroup.get(lljCode)); + } + } catch (RuntimeException e) { + log.error(e.getMessage(), e); + } + } } + break; } } @@ -113,7 +126,7 @@ public class BsInSsjThread implements Runnable { * * @param lljCode */ - private void inLljDispatch(String lljCode) { + private void inLljDispatch(String lljCode,List mydoJobs) { //判断是否生成队列 AgvQueue agvQueueParam = new AgvQueue(); @@ -121,11 +134,7 @@ public class BsInSsjThread implements Runnable { //agvQueueParam.setStatus("0"); List agvQueues = agvQueueService.selectAgvQueueList(agvQueueParam); if (CollUtil.isEmpty(agvQueues)){ - //查询流利架未开始的作业 - MydoJob mydoJobParam = new MydoJob(); - mydoJobParam.setStatus("1"); - mydoJobParam.setEntranceId(lljCode); - MydoJob mydoJob = apiService.requestEnterByEnterId(mydoJobParam); + MydoJob mydoJob = mydoJobs.get(0); if (ObjUtil.isNotNull(mydoJob)) { //生成agv队列 AgvQueue agvQueue = apiService.createAgvQueue(lljCode, mydoJob.getCargoSpaceId(),mydoJob.getTrayCode(),mydoJob.getTaskNo(),"1"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsOutSsjThread.java index d224b5c..ccee3a2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsOutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsOutSsjThread.java @@ -130,6 +130,8 @@ public class BsOutSsjThread implements Runnable { queue.setPositionCode2(basFluentFrame.getLocationName()); agvQueueService.updateAgvQueue(queue); GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = apiService.requestAgvQueue(queue); + //todo 需要调试小车请求 + genAgvSchedulingTaskResponse.setCode(0); if (genAgvSchedulingTaskResponse.getCode() == 0) { //修改ctu执行状态 queue.setStatus("1");