diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java index 17a14fd..46358a7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mapper/MydoJobMapper.java @@ -70,7 +70,8 @@ public interface MydoJobMapper void InvalidMydoJob(HashMap map); - MydoJob selectMydoJobByExitList(@Param("exitList") List exitList); + MydoJob selectMydoJobByExitList(@Param("exitList") List exitList ); + MydoJob selectMydoJobByExitList1(@Param("exitList") List exitList ,@Param("roadwayId") String roadwayId); void insertHistory(String jobId); @@ -85,4 +86,6 @@ public interface MydoJobMapper List getInJobByEntrance(@Param("exitList") List exitList); MydoJob selectJobByTaskNo(String taskNo); + + MydoJob selectMydoJobByEntranceList1(@Param("entranceId") String entranceId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java index 65cd564..d1afdb7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/IMydoJobService.java @@ -66,6 +66,7 @@ public interface IMydoJobService boolean InvalidMydoJob(Long rwh, Integer id); MydoJob selectMydoJobByExitList(List exitList); + MydoJob selectMydoJobByExitList1(List exitList,String roadwayId); void insertHistory(String jobId); @@ -80,4 +81,6 @@ public interface IMydoJobService List getInJobByEntrance(List exitList); MydoJob selectJobByTaskNo(String taskNo); + + MydoJob selectMydoJobByEntranceList1(String entranceId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java index 37c2a05..eba8b78 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java @@ -130,10 +130,15 @@ public class MydoJobServiceImpl implements IMydoJobService } @Override - public MydoJob selectMydoJobByExitList(List exitList) { + public MydoJob selectMydoJobByExitList(List exitList ) { return mydoJobMapper.selectMydoJobByExitList(exitList); } + @Override + public MydoJob selectMydoJobByExitList1(List exitList ,String roadwayId) { + return mydoJobMapper.selectMydoJobByExitList1(exitList,roadwayId); + } + @Override public void insertHistory(String jobId) { mydoJobMapper.insertHistory(jobId); @@ -149,6 +154,11 @@ public class MydoJobServiceImpl implements IMydoJobService return mydoJobMapper.selectMydoJobByEntranceList(entranceList); } + @Override + public MydoJob selectMydoJobByEntranceList1(String entranceId) { + return mydoJobMapper.selectMydoJobByEntranceList1(entranceId); + } + @Override public List selectMydoJobFinishList(MydoJob mydoJob) { return mydoJobMapper.selectMydoJobFinishList(mydoJob); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java index 9875bee..c35a53d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayInSsjThread.java @@ -99,7 +99,8 @@ public class Floor1BothWayInSsjThread implements Runnable { if (ssj.getDw() == 1 && ssj.getTaskNo() > 1000) { int taskNo = ssj.getTaskNo(); MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(taskNo)); - if (ObjUtil.isNotNull(mydoJob) && TASK_STATUS_CREATE.equals(mydoJob.getStatus()) && TASK_EP_SSJ.equals(mydoJob.getExecutionPhase()) && Convert.toInt(mydoJob.getInOrOut()) < 20) { + if (ObjUtil.isNotNull(mydoJob) && TASK_STATUS_CREATE.equals(mydoJob.getStatus()) + && TASK_EP_SSJ.equals(mydoJob.getExecutionPhase()) && Convert.toInt(mydoJob.getInOrOut()) < 20) { //修改作业执行状态 mydoJob.setStatus(TASK_STATUS_RUNNING); mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date())); @@ -109,7 +110,7 @@ public class Floor1BothWayInSsjThread implements Runnable { mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); mydoJobService.updateMydoJob(mydoJob); } - if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) { + if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ) && Convert.toInt(mydoJob.getInOrOut()) < 20) { List ddjDeviceExecutionQueues = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_3, Convert.toInt(mydoJob.getRoadwayId())); BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); List pclList = roadwayMap.get(ssj.getDeviceCode()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java index f396211..dd9d510 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1BothWayOutSsjThread.java @@ -38,12 +38,9 @@ public class Floor1BothWayOutSsjThread implements Runnable { private IMydoJobService mydoJobService; private IBasCargoSpaceService basCargoSpaceService; private IDdjDeviceExecutionQueueService ddjDeviceExecutionQueueService; - private final Map> roadwayMap = new HashMap<>(); + private final Map> roadwayMap = new HashMap<>(); private IJobCallBackService jobCallBackService; - private final Map roadwayOutMap = new HashMap<>(); - - public boolean isRun = true; @@ -51,14 +48,11 @@ public class Floor1BothWayOutSsjThread implements Runnable { ssjCodeList = new HashMap<>(); ArrayList roadway1 = new ArrayList<>(); roadway1.add(PlcSsjRead.deviceSsjMap.get("L2003")); - roadway1.add(PlcSsjRead.deviceSsjMap.get("L2004")); - roadwayOutMap.put("L2003", PlcSsjRead.deviceSsjMap.get("L2004")); ssjCodeList.put("roadway1", roadway1); ArrayList roadway2 = new ArrayList<>(); roadway2.add(PlcSsjRead.deviceSsjMap.get("L2005")); - roadway2.add(PlcSsjRead.deviceSsjMap.get("L2006")); - roadwayOutMap.put("L2005", PlcSsjRead.deviceSsjMap.get("L2006")); ssjCodeList.put("roadway2", roadway2); + ArrayList ou1 = new ArrayList<>(); ou1.add(PlcSsjRead.deviceSsjMap.get("L2004")); ssjCodeList.put("ou1", ou1); @@ -66,7 +60,13 @@ public class Floor1BothWayOutSsjThread implements Runnable { out2.add(PlcSsjRead.deviceSsjMap.get("L2006")); ssjCodeList.put("out2", out2); + ArrayList roadway1Both = new ArrayList<>(); + roadway1Both.add(PlcSsjRead.deviceSsjMap.get("L2001")); + ssjCodeList.put("roadway1Both", roadway1Both); + ArrayList roadway2Both = new ArrayList<>(); + roadway2Both.add(PlcSsjRead.deviceSsjMap.get("L2007")); + ssjCodeList.put("roadway2Both", roadway2Both); mydoJobService = SpringUtils.getBean(IMydoJobService.class); basCargoSpaceService = SpringUtils.getBean(IBasCargoSpaceService.class); @@ -75,17 +75,17 @@ public class Floor1BothWayOutSsjThread implements Runnable { //初始化巷道口 排 列 层 - roadwayMap.put("L2003",Arrays.asList(2,47,1)); - roadwayMap.put("L2005",Arrays.asList(3,70,1)); + roadwayMap.put("L2003", Arrays.asList(2, 47, 1)); + roadwayMap.put("L2005", Arrays.asList(3, 70, 1)); } @Override public void run() { init(); - while (isRun){ + while (isRun) { for (String type : ssjCodeList.keySet()) { - switch (type){ + switch (type) { case "roadway1": case "roadway2": dispatch(ssjCodeList.get(type)); @@ -109,30 +109,31 @@ public class Floor1BothWayOutSsjThread implements Runnable { private void dispatch1(List ssjList) { for (DeviceSsj ssj : ssjList) { - if (ssj.getTaskNo()>0){ + if (ssj.getTaskNo() > 0) { MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo())); - if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) { - mydoJob.setExecutionPhase(TASK_EP_SSJ); - mydoJobService.updateMydoJob(mydoJob); - } - if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)) { - JobCallBack jobCallBack = new JobCallBack(); - jobCallBack.setType("2"); - jobCallBack.setMydojobId(mydoJob.getJobId()); - jobCallBack.setStatus("0"); - jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); - jobCallBack.setCreateTime(new Date()); - jobCallBack.setSpare1("0"); - jobCallBackService.insertJobCallBack(jobCallBack); - - log.info("完成任务 taskNo{} ", mydoJob.getTaskNo()); - mydoJob.setStatus(TASK_STATUS_FINISH); - mydoJob.setExecutionPhase(TASK_EP_WMS_FINISH); - mydoJob.setFinishTime(DateUtil.formatDateTime(new Date())); - mydoJobService.updateMydoJob(mydoJob); - mydoJobService.insertHistory(mydoJob.getJobId()); - mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId()); + if(Convert.toInt(mydoJob.getInOrOut()) > 20){ + if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) { + mydoJob.setExecutionPhase(TASK_EP_SSJ); + mydoJobService.updateMydoJob(mydoJob); + } + if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)) { + JobCallBack jobCallBack = new JobCallBack(); + jobCallBack.setType("2"); + jobCallBack.setMydojobId(mydoJob.getJobId()); + jobCallBack.setStatus("0"); + jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); + jobCallBack.setCreateTime(new Date()); + jobCallBack.setSpare1("0"); + jobCallBackService.insertJobCallBack(jobCallBack); + log.info("完成任务 taskNo{} ", mydoJob.getTaskNo()); + mydoJob.setStatus(TASK_STATUS_FINISH); + mydoJob.setExecutionPhase(TASK_EP_WMS_FINISH); + mydoJob.setFinishTime(DateUtil.formatDateTime(new Date())); + mydoJobService.updateMydoJob(mydoJob); + mydoJobService.insertHistory(mydoJob.getJobId()); + mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId()); + } } } } @@ -142,22 +143,37 @@ public class Floor1BothWayOutSsjThread implements Runnable { * 出库堆垛机队列生成 */ public void dispatch(List ssjList) { - DeviceSsj deviceSsj = roadwayOutMap.get(ssjList.get(0).getDeviceCode()); + DeviceSsj deviceSsj = ssjList.get(0); + DeviceSsj ssj = new DeviceSsj(); + String roadwayId = ""; + String entrance_id = ""; + if ("L2003".equals(deviceSsj.getDeviceCode())) { + roadwayId = "1"; + ssj = ssjCodeList.get("roadway1Both").get(0); + entrance_id = "L2004"; + + } + if("L2005".equals(deviceSsj.getDeviceCode())) { + roadwayId = "2"; + ssj = ssjCodeList.get("roadway2Both").get(0); + entrance_id = "L2006"; + } + List exitList = new ArrayList<>(); exitList.add("1"); - MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList); - MydoJob inJob = mydoJobService.selectMydoJobByEntranceList(Collections.singletonList(deviceSsj.getDeviceCode())); - boolean allKx = ssjList.stream().allMatch(ssj -> ssj.getKx() == 1); - if (ObjUtil.isNotNull(mydoJob) && allKx && ObjUtil.isNull(inJob) && deviceSsj.getInOrOut() == 1) { + MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList, roadwayId); + MydoJob inJob = mydoJobService.selectMydoJobByEntranceList1(entrance_id); + if (ObjUtil.isNotNull(mydoJob) && deviceSsj.getKx() == 1 && ssj.getKx() == 0 + && ObjUtil.isNull(inJob) && ssj.getInOrOut() == 1) { //所有线体为空闲 并且存在出库作业 并且不存在入库作业 BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); - if (ObjUtil.isNull(basCargoSpace)){ - log.error("货位不存在 cargoSpaceId{}",mydoJob.getCargoSpaceId()); - }else { + if (ObjUtil.isNull(basCargoSpace)) { + log.error("货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId()); + } else { //生成队列 - List list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2,Convert.toInt(mydoJob.getRoadwayId())); + List list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_2, Convert.toInt(mydoJob.getRoadwayId())); List pclList = roadwayMap.get(ssjList.get(0).getDeviceCode()); - if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)){ + if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) { DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID()); ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo())); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java index 941a60b..1343781 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor1/Floor1SingleSsjThread.java @@ -152,7 +152,14 @@ public class Floor1SingleSsjThread implements Runnable { if (ssj.getKx() == 1) { List exitList = new ArrayList<>(); exitList.add("1"); - MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList); + String roadwayId = ""; + if("L2001".equals(ssj.getDeviceCode())){ + roadwayId = "1"; + } + if("L2007".equals(ssj.getDeviceCode())){ + roadwayId = "2"; + } + MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList,roadwayId); if (ObjUtil.isNotNull(mydoJob)) { BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); if (ObjUtil.isNull(basCargoSpace)) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java index c39449e..4447b0a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2RoadWaySsjThread.java @@ -99,7 +99,8 @@ public class Floor2RoadWaySsjThread implements Runnable { mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); mydoJobService.updateMydoJob(mydoJob); } - if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) { + if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ) + && Convert.toInt(mydoJob.getInOrOut()) < 20) { List ddjDeviceExecutionQueues = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_1, Convert.toInt(mydoJob.getRoadwayId())); BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); List pclList = roadwayMap.get(roadSsjDevice.getDeviceCode()); diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index 927a0f6..d83fd2b 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -114,6 +114,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by priority desc,create_time + + insert into mydo_job_wcs @@ -239,6 +251,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and in_or_out <= 20 and status = 3 order by priority desc,create_time desc + + +