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 82ea383..ba9d448 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 @@ -38,6 +38,8 @@ import java.util.List; import java.util.Map; import static com.ruoyi.common.Constant.*; +import static com.ruoyi.common.TaskStatusCode.TASK_EP_CREATE; +import static com.ruoyi.common.TaskStatusCode.TASK_EP_ROADWAY_SSJ; /** * 接口记录Service业务层处理 @@ -375,7 +377,7 @@ public class ApiServiceImpl implements IApiService { mydoJob.setTrayCode(receiveOutJob.getTrayCode()); mydoJob.setRoadwayId(receiveOutJob.getRoadwayId()); mydoJob.setCreateTime(DateUtils.getNowDate()); - mydoJob.setExecutionPhase("0"); + mydoJob.setExecutionPhase(TASK_EP_CREATE); int i = mydoJobService.insertMydoJob(mydoJob); if (i > 0) { return AjaxResult.success(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java index 488a062..0e28496 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java @@ -49,13 +49,11 @@ public class PlcSsjRead implements Runnable { while (isRun) { try { if (IsConnect()) { - int step = 20; - int baseOffset = 0; for (String ssjCode : deviceSsjMap.keySet()) { DeviceSsj ssjDevice = deviceSsjMap.get(ssjCode); switch (ssjDevice.getType()) { case "1": - readPlcLineSsj(ssjDevice); + readPlcSmSsj(ssjDevice); break; case "2": readPlcInOutSsj(ssjDevice); @@ -140,7 +138,7 @@ public class PlcSsjRead implements Runnable { * * @param ssjDevice */ - private void readPlcLineSsj(DeviceSsj ssjDevice) { + private void readPlcSmSsj(DeviceSsj ssjDevice) { OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("220")); String ddsx1 = "0"; if (read2.IsSuccess) { @@ -156,12 +154,18 @@ public class PlcSsjRead implements Runnable { case "G1005": trayCodeReadAddress = "DB502.0"; break; - case "L2012": + case "L2004": trayCodeReadAddress = "DB503.0"; break; - case "L2013": + case "L2006": trayCodeReadAddress = "DB504.0"; break; + case "L1001": + trayCodeReadAddress = "DB506.0"; + break; + case "L1003": + trayCodeReadAddress = "DB505.0"; + break; } OperateResultExOne trayCodeRead = readWriteNet.Read(trayCodeReadAddress, Short.parseShort("220")); if (trayCodeRead.IsSuccess){ 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 0871723..ada4b56 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 @@ -50,8 +50,8 @@ public class Floor1BothWayInSsjThread implements Runnable { ssjCodeList = new HashMap<>(); ssjCodeList.put("roadway1", PlcSsjRead.deviceSsjMap.get("L2003")); ssjCodeList.put("roadway2", PlcSsjRead.deviceSsjMap.get("L2005")); - ssjCodeList.put("in1", PlcSsjRead.deviceSsjMap.get("L2012")); - ssjCodeList.put("in2", PlcSsjRead.deviceSsjMap.get("L2013")); + ssjCodeList.put("in1", PlcSsjRead.deviceSsjMap.get("L2004")); + ssjCodeList.put("in2", PlcSsjRead.deviceSsjMap.get("L2006")); apiService = SpringUtils.getBean(IApiService.class); @@ -64,8 +64,8 @@ public class Floor1BothWayInSsjThread implements Runnable { roadwayMap.put("L2003", Arrays.asList(1, 1, 1)); roadwayMap.put("L2005", Arrays.asList(1, 1, 1)); - exitRoadwayMap.put("L2003", "L2012"); - exitRoadwayMap.put("L2005", "L2013"); + exitRoadwayMap.put("L2003", "L2004"); + exitRoadwayMap.put("L2005", "L2006"); } @@ -96,10 +96,10 @@ public class Floor1BothWayInSsjThread implements Runnable { } private void dispatch1(DeviceSsj ssj) { - if (ssj.getDw() == 1 && ssj.getTaskNo() > 0) { + if (ssj.getDw() == 1 && ssj.getTaskNo() > 1000) { int taskNo = ssj.getTaskNo(); MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(taskNo)); - if (ObjUtil.isNotNull(mydoJob) && "1".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())); @@ -143,19 +143,9 @@ public class Floor1BothWayInSsjThread implements Runnable { if (ssj.getDw() == 1 && ssj.getTaskNo() > 0 && ssj.getTaskNo() < 1000 && ssj.getTraySize() != 0) { //先检测有没有出库作业,有出库作业直接退回 MydoJob outMydoJob = mydoJobService.selectRunningMydoJobByExitList(Collections.singletonList(ssj.getDeviceCode())); - String l2012WriteAddress = "DB501.20"; - String l2013WriteAddress = "DB501.30"; if (ObjUtil.isNotNull(outMydoJob) || StrUtil.isEmpty(ssj.getTrayCode())) { - int i = 0; //下发去向 和任务号 - switch (ssj.getDeviceCode()) { - case "L2012": - i = writeToSsj(l2012WriteAddress,"0",2,1); - break; - case "L2013": - i = writeToSsj(l2013WriteAddress,"0",2,1); - break; - } + int i = writeToSsj(ssj.getPlcDbWriteAddress(), "0", 2, 1); if (i == 1) { log.info("未检测到托盘码下发回退 rwh:{},qx:{},trayCode:{}", ssj.getTaskNo(), 1, ssj.getTrayCode()); } @@ -178,22 +168,15 @@ public class Floor1BothWayInSsjThread implements Runnable { if (result.isSuccess()) { inJob = BeanUtil.toBean(result.get("data"), MydoJob.class); inJob.setStatus(TASK_STATUS_CREATE); + inJob.setExecutionPhase(TASK_EP_CREATE); mydoJobService.insertMydoJob(inJob); } else { log.info("未检测到托盘码请求入库作业 rwh:{},trayCode:{}", ssj.getTaskNo(), ssj.getTrayCode()); } } if (inJob != null) { - int i = 0; //下发去向 和任务号 - switch (ssj.getDeviceCode()) { - case "L2012": - i = writeToSsj(l2012WriteAddress,inJob.getTaskNo(),1,1); - break; - case "L2013": - i = writeToSsj(l2013WriteAddress,inJob.getTaskNo(),1,1); - break; - } + int i = writeToSsj(ssj.getPlcDbWriteAddress(), inJob.getTaskNo(), 1, 1); if (i == 1) { inJob.setStatus(TASK_STATUS_RUNNING); inJob.setExecutionPhase(TASK_EP_SSJ); 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 bc03980..c484769 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 @@ -40,6 +40,8 @@ public class Floor1BothWayOutSsjThread implements Runnable { private final Map> roadwayMap = new HashMap<>(); private IJobCallBackService jobCallBackService; + private final Map roadwayOutMap = new HashMap<>(); + public boolean isRun = true; @@ -49,18 +51,18 @@ public class Floor1BothWayOutSsjThread implements Runnable { ArrayList roadway1 = new ArrayList<>(); roadway1.add(PlcSsjRead.deviceSsjMap.get("L2003")); roadway1.add(PlcSsjRead.deviceSsjMap.get("L2004")); - roadway1.add(PlcSsjRead.deviceSsjMap.get("L2012")); + 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")); - roadway2.add(PlcSsjRead.deviceSsjMap.get("L2013")); + roadwayOutMap.put("L2005", PlcSsjRead.deviceSsjMap.get("L2006")); ssjCodeList.put("roadway2", roadway2); ArrayList ou1 = new ArrayList<>(); - ou1.add(PlcSsjRead.deviceSsjMap.get("L2012")); + ou1.add(PlcSsjRead.deviceSsjMap.get("L2004")); ssjCodeList.put("ou1", ou1); ArrayList out2 = new ArrayList<>(); - out2.add(PlcSsjRead.deviceSsjMap.get("L2013")); + out2.add(PlcSsjRead.deviceSsjMap.get("L2006")); ssjCodeList.put("out2", out2); @@ -137,7 +139,7 @@ public class Floor1BothWayOutSsjThread implements Runnable { * 出库堆垛机队列生成 */ public void dispatch(List ssjList) { - DeviceSsj deviceSsj = ssjList.get(ssjList.size() - 1); + DeviceSsj deviceSsj = roadwayOutMap.get(ssjList.get(0).getDeviceCode()); MydoJob pdOutJob = mydoJobService.selectMydoJobByExitList(Collections.singletonList(deviceSsj.getDeviceCode())); MydoJob inJob = mydoJobService.selectMydoJobByEntranceList(Collections.singletonList(deviceSsj.getDeviceCode())); boolean allKx = ssjList.stream().allMatch(ssj -> ssj.getKx() == 1); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java index 7dd7284..bd663ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java @@ -21,7 +21,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; -import static com.ruoyi.common.TaskStatusCode.TASK_EP_SSJ; +import static com.ruoyi.common.TaskStatusCode.*; import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj; /** @@ -43,8 +43,8 @@ public class Floor2InOutSsjThread implements Runnable { public void init() { ssjCodeList = new HashMap<>(); ArrayList ssjCodes = new ArrayList<>(); - ssjCodes.add("L1011"); - ssjCodes.add("L1012"); + ssjCodes.add("L1001"); + ssjCodes.add("L1003"); ssjCodeList.put("inout", ssjCodes); ssjCodes.add("L1001"); ssjCodes.add("L1003"); @@ -216,7 +216,7 @@ public class Floor2InOutSsjThread implements Runnable { if(ajaxResult.isSuccess()){ MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class) ; mydoJob2.setStatus("1"); - mydoJob2.setExecutionPhase("0"); + mydoJob2.setExecutionPhase(TASK_EP_CREATE); mydoJob2.setCreateTime(new Date()); mydoJobService.insertMydoJob(mydoJob2); int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/LineSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/LineSsjThread.java index 6bc2875..85946ec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/LineSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/LineSsjThread.java @@ -23,8 +23,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; -import static com.ruoyi.common.TaskStatusCode.TASK_EP_AGV; -import static com.ruoyi.common.TaskStatusCode.TASK_EP_LINE_SSJ; +import static com.ruoyi.common.TaskStatusCode.*; import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.deviceSsjMap; import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj; @@ -133,7 +132,7 @@ public class LineSsjThread implements Runnable { //拿到正常作业,插到wcs作业表,下发给输送机任务号,覆盖任务号 MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class) ; mydoJob2.setStatus("1"); - mydoJob2.setExecutionPhase("0"); + mydoJob2.setExecutionPhase(TASK_EP_CREATE); mydoJob2.setCreateTime(new Date()); mydoJobService.insertMydoJob(mydoJob2); int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1);