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 267b6484..16d2b505 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 @@ -137,7 +137,5 @@ public interface IApiService AjaxResult deleteAgvTray(AgvQueue agvQueue); - - - + AjaxResult requestWmsSpace(MydoJob mydoJob); } 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 dc753dc4..d133cd2a 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 @@ -392,6 +392,7 @@ public class ApiServiceImpl implements IApiService { } mydoJob.setInOrOut(receiveOutJob.getInOrOut()); mydoJob.setStatus("1"); + mydoJob.setPriority(Long.valueOf(10)); mydoJob.setTrayCode(receiveOutJob.getTrayCode()); mydoJob.setRoadwayId(receiveOutJob.getRoadwayId()); mydoJob.setCreateTime(DateUtils.getNowDate()); @@ -451,6 +452,17 @@ public class ApiServiceImpl implements IApiService { } } + @Override + public AjaxResult requestWmsSpace(MydoJob mydoJob) { + RequestLog requestLog = requestLogService.getRequestLog(REQUEST_IN_SPACE_URL, "入库请求分货位", JSONUtil.toJsonStr(mydoJob)); + if ("1".equals(requestLog.getIsSuccessful())) { + InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class); + return AjaxResult.success(bean.getData()); + } else { + return AjaxResult.error(); + } + } + @Override public AjaxResult selectMydoJobByNoTrayCode(Map param) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java b/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java index 73e81e82..43159329 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java @@ -17,7 +17,7 @@ public class Constant { public static final String RE_ASSIGN_URL = WMS_BASE_URL+"reAssign"; public static final String RE_MATERIAL_URL = WMS_BASE_URL+"reMaterial"; public static final String REQUEST_ENTER_URL = WMS_BASE_URL+"requestEnterByTrayCodeAndEntranceId"; - + public static final String REQUEST_IN_SPACE_URL = WMS_BASE_URL+"requestInSpace"; 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 46358a76..565e82f8 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 @@ -71,7 +71,7 @@ public interface MydoJobMapper void InvalidMydoJob(HashMap map); MydoJob selectMydoJobByExitList(@Param("exitList") List exitList ); - MydoJob selectMydoJobByExitList1(@Param("exitList") List exitList ,@Param("roadwayId") String roadwayId); + MydoJob selectMydoJobByExitList1(@Param("exitId") String exitId ,@Param("roadwayId") String roadwayId); void insertHistory(String jobId); @@ -88,4 +88,8 @@ public interface MydoJobMapper MydoJob selectJobByTaskNo(String taskNo); MydoJob selectMydoJobByEntranceList1(@Param("entranceId") String entranceId); + + List getInJobByEntranceId(@Param("entranceId") String exitId); + + MydoJob selectMydoJobByExitId(@Param("exitId") String exitId); } 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 20589d53..eaef339d 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 @@ -68,7 +68,7 @@ public interface IMydoJobService boolean InvalidMydoJob(Long rwh, Integer id); MydoJob selectMydoJobByExitList(List exitList); - MydoJob selectMydoJobByExitList1(List exitList,String roadwayId); + MydoJob selectMydoJobByExitList1(String exitId,String roadwayId); void insertHistory(String jobId); @@ -87,4 +87,8 @@ public interface IMydoJobService MydoJob selectMydoJobByEntranceList1(String entranceId); AjaxResult OuthandFinish(String[] jobIds); + + List getInJobByEntranceId(String exitId); + + MydoJob selectMydoJobByExitId(String exitId); } 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 abb14fad..f14f2357 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 @@ -76,6 +76,8 @@ public class MydoJobServiceImpl implements IMydoJobService @Override public int updateMydoJob(MydoJob mydoJob) { + long priority = mydoJob.getPriority(); + mydoJob.setPriority(Math.abs(priority)); return mydoJobMapper.updateMydoJob(mydoJob); } @@ -144,8 +146,8 @@ public class MydoJobServiceImpl implements IMydoJobService } @Override - public MydoJob selectMydoJobByExitList1(List exitList ,String roadwayId) { - return mydoJobMapper.selectMydoJobByExitList1(exitList,roadwayId); + public MydoJob selectMydoJobByExitList1(String exitId ,String roadwayId) { + return mydoJobMapper.selectMydoJobByExitList1(exitId,roadwayId); } @Override @@ -190,6 +192,16 @@ public class MydoJobServiceImpl implements IMydoJobService return AjaxResult.success("操作成功"); } + @Override + public List getInJobByEntranceId(String exitId) { + return mydoJobMapper.getInJobByEntranceId(exitId); + } + + @Override + public MydoJob selectMydoJobByExitId(String exitId) { + return mydoJobMapper.selectMydoJobByExitId(exitId); + } + @Override public List selectMydoJobFinishList(MydoJob mydoJob) { return mydoJobMapper.selectMydoJobFinishList(mydoJob); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/controller/DdjDeviceExecutionQueueController.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/controller/DdjDeviceExecutionQueueController.java index ce473e79..57530119 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/controller/DdjDeviceExecutionQueueController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/controller/DdjDeviceExecutionQueueController.java @@ -88,6 +88,7 @@ public class DdjDeviceExecutionQueueController extends BaseController @PutMapping public AjaxResult edit(@RequestBody DdjDeviceExecutionQueue ddjDeviceExecutionQueue) { + ddjDeviceExecutionQueue.setDdjxf("0"); return toAjax(ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/service/impl/DdjDeviceExecutionQueueServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/service/impl/DdjDeviceExecutionQueueServiceImpl.java index 98df2cb7..7d71db97 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/service/impl/DdjDeviceExecutionQueueServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/ddj/service/impl/DdjDeviceExecutionQueueServiceImpl.java @@ -64,7 +64,6 @@ public class DdjDeviceExecutionQueueServiceImpl implements IDdjDeviceExecutionQu @Override public int updateDdjDeviceExecutionQueue(DdjDeviceExecutionQueue ddjDeviceExecutionQueue) { - ddjDeviceExecutionQueue.setDdjxf("0"); return ddjDeviceExecutionQueueMapper.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThread.java index ee2fcb8d..334ebe24 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThread.java @@ -94,7 +94,7 @@ public class DdjThread implements Runnable { 堆垛机线程进来后第一件事先进行堆垛机正执行任务的账务处理 以防存在漏处理,没处理的情况发生 */ - if (ddj.getCzfs() == 5 && ddj.getSbzt() == 0 && ddj.getJdbz() == 5) { + if (ddj.getCzfs() == 5 && ddj.getSbzt() == 0 && (ddj.getJdbz() == 5 || ddj.getJdbz() == 0)) { Long rwh = ddj.getRwh(); //完成作业 MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(rwh); @@ -114,7 +114,7 @@ public class DdjThread implements Runnable { //根据堆垛机上任务号,修改任务执行阶段 Long rwh = ddj.getRwh(); DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(rwh, ddj.getId()); - if (ddjDeviceExecutionQueue != null) { + if (ddjDeviceExecutionQueue != null && !"1".equals(ddjDeviceExecutionQueue.getSpare1())) { //修改队列执行阶段 ddjDeviceExecutionQueue.setRwzt(ddj.getJdbz()); ddjDeviceExecutionQueue.setSpare1("1"); @@ -134,7 +134,7 @@ public class DdjThread implements Runnable { if ("0".equals(mydoJob.getFaultFlag()) && "1".equals(ddjDeviceExecutionQueue.getSpare1())) { mydoJob.setStatus("1"); mydoJobService.updateMydoJob(mydoJob); - AjaxResult ajaxResult = apiService.reAssign(new JobParam(mydoJob.getJobId(), null, null)); + AjaxResult ajaxResult = apiService.reAssign(new JobParam(mydoJob.getJobId(), mydoJob.getTrayCode(), mydoJob.getTaskNo())); if (ajaxResult.isSuccess()){ mydoJob = mydoJobService.selectMydoJobByTaskNo(rwh); mydoJob.setFaultFlag("2"); @@ -143,7 +143,7 @@ public class DdjThread implements Runnable { ddjDeviceExecutionQueue.setMbph(basCargoSpace.getThePlatoon()); ddjDeviceExecutionQueue.setMblh(basCargoSpace.getTheColumn()); ddjDeviceExecutionQueue.setMbch(basCargoSpace.getTheFloor()); - ddjDeviceExecutionQueue.setSpare1("0"); + ddjDeviceExecutionQueue.setDdjxf("0"); ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); } } @@ -155,16 +155,15 @@ public class DdjThread implements Runnable { */ if (ddj.getCzfs() == 5 && ddj.getSbzt() == 1053 && ddj.getJdbz() < 5) { Long rwh = ddj.getRwh(); + MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(rwh); //无货异常处理 DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(rwh,ddj.getId()); //找到对应任务 调用api接口 取货无货,重新分配单据 if (ObjUtil.isNotNull(ddjDeviceExecutionQueue)) { - AjaxResult ajaxResult = apiService.reMaterial(new JobParam(rwh.toString(), null, null)); + AjaxResult ajaxResult = apiService.reMaterial(new JobParam(mydoJob.getJobId(), mydoJob.getTrayCode(), mydoJob.getTaskNo())); if (ajaxResult.isSuccess()) { //作废作业 InvalidMydoJob(rwh, ddj.getId()); - //删除队列 - ddjDeviceExecutionQueueService.deleteDdjDeviceExecutionQueueByUuid(ddjDeviceExecutionQueue.getUuid()); } } } @@ -180,7 +179,7 @@ public class DdjThread implements Runnable { if (ObjUtil.isNotNull(mydoJob) && "2".equals(mydoJob.getFaultFlag())) { //判断任务是否重分完成 DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(rwh,ddj.getId()); - if (ObjUtil.isNotNull(ddjDeviceExecutionQueue) && "0".equals(ddjDeviceExecutionQueue.getSpare1())) { + if (ObjUtil.isNotNull(ddjDeviceExecutionQueue) && "0".equals(ddjDeviceExecutionQueue.getDdjxf())) { //重新下发堆垛机任务 int i = issuedDDJTask(ddj.getId(), ddjDeviceExecutionQueue); if (i == 1) { @@ -190,9 +189,9 @@ public class DdjThread implements Runnable { ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); mydoJob.setFaultFlag("0"); mydoJobService.updateMydoJob(mydoJob); - log.info("托盘堆垛机重新下发任务成功 rwh:{}", rwh); + log.info("堆垛机放货目标有货,重分货位下发任务成功 rwh:{}", rwh); } else { - log.error("托盘堆垛机重新下发任务失败!!!!!!!"); + log.error("堆垛机放货目标有货,重分货位下发任务失败!!!!!!!"); } } } @@ -224,9 +223,9 @@ public class DdjThread implements Runnable { ddjDeviceExecutionQueue.setXfsj(DateUtil.formatDateTime(DateUtil.date())); ddjDeviceExecutionQueue.setDdjxf("1"); ddjDeviceExecutionQueueService.updateDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); - log.info("托盘堆垛机下发任务成功 rwh:{}", ddjDeviceExecutionQueue.getRwh()); + log.info("堆垛机下发任务成功 rwh:{}", ddjDeviceExecutionQueue.getRwh()); } else { - log.error("托盘堆垛机下发任务失败!!!!!!!"); + log.error("堆垛机下发任务失败!!!!!!!"); } } } 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 c35a53d6..0da880e2 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,53 +99,66 @@ 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) { - //修改作业执行状态 - mydoJob.setStatus(TASK_STATUS_RUNNING); - mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date())); - mydoJobService.updateMydoJob(mydoJob); - } - if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)) { - mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); - mydoJobService.updateMydoJob(mydoJob); - } - 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()); - if (CollUtil.isEmpty(ddjDeviceExecutionQueues) && ObjUtil.isNotNull(basCargoSpace) && CollUtil.isNotEmpty(pclList)) { - DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); - ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID()); - ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo())); - ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId()); - ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId())); - ddjDeviceExecutionQueue.setRwzt(0); - ddjDeviceExecutionQueue.setYph(pclList.get(0)); - ddjDeviceExecutionQueue.setYlh(pclList.get(1)); - ddjDeviceExecutionQueue.setYch(pclList.get(2)); - ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon())); - ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn())); - ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor())); - ddjDeviceExecutionQueue.setDdjxf("0"); - ddjDeviceExecutionQueue.setMlfs(5); - ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize()); - ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date())); - ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_3); - ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); - - mydoJob.setExecutionPhase(TASK_EP_DDJ); + if(ObjUtil.isNotNull(mydoJob) && Convert.toInt(mydoJob.getInOrOut()) < 20){ + if (TASK_STATUS_CREATE.equals(mydoJob.getStatus()) + && TASK_EP_SSJ.equals(mydoJob.getExecutionPhase())) { + //修改作业执行状态 + mydoJob.setStatus(TASK_STATUS_RUNNING); + mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date())); mydoJobService.updateMydoJob(mydoJob); } + if(mydoJob.getCargoSpaceId() == null || "".equals(mydoJob.getCargoSpaceId())){ + AjaxResult ajaxResult = apiService.requestWmsSpace(mydoJob); + if(ajaxResult.isSuccess()){ + BasCargoSpace space = BeanUtil.toBean(ajaxResult.get("data"), BasCargoSpace.class); + String cargoSpaceId = space.getCargoSpaceId(); + mydoJob.setCargoSpaceId(cargoSpaceId); + mydoJobService.updateMydoJob(mydoJob); + } + } + if(mydoJob.getCargoSpaceId()!=null && !"".equals(mydoJob.getCargoSpaceId())){ + if(mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)){ + mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); + mydoJobService.updateMydoJob(mydoJob); + } + + if(mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)){ + List ddjDeviceExecutionQueues = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_3, Convert.toInt(mydoJob.getRoadwayId())); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); + List pclList = roadwayMap.get(ssj.getDeviceCode()); + if (CollUtil.isEmpty(ddjDeviceExecutionQueues) && ObjUtil.isNotNull(basCargoSpace) && CollUtil.isNotEmpty(pclList)) { + DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); + ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID()); + ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo())); + ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId()); + ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId())); + ddjDeviceExecutionQueue.setRwzt(0); + ddjDeviceExecutionQueue.setYph(pclList.get(0)); + ddjDeviceExecutionQueue.setYlh(pclList.get(1)); + ddjDeviceExecutionQueue.setYch(pclList.get(2)); + ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon())); + ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn())); + ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor())); + ddjDeviceExecutionQueue.setDdjxf("0"); + ddjDeviceExecutionQueue.setMlfs(5); + ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize()); + ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date())); + ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_3); + ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); + + mydoJob.setExecutionPhase(TASK_EP_DDJ); + mydoJobService.updateMydoJob(mydoJob); + } + } + } } } } private void dispatch2(DeviceSsj ssj) { - if (ssj.getRkqq() == 1 && ssj.getTaskNo() > 0 && ssj.getTaskNo() < 1000 ) { + if (ssj.getRkqq() == 1 && ssj.getTaskNo() > 0 && ssj.getTaskNo() < 1000 && StrUtil.isEmpty(ssj.getTrayCode())) { //先检测有没有出库作业,有出库作业直接退回 MydoJob outMydoJob = mydoJobService.selectRunningMydoJobByExitList(Collections.singletonList(ssj.getDeviceCode())); - // || StrUtil.isEmpty(ssj.getTrayCode()) if (ObjUtil.isNotNull(outMydoJob)) { //下发去向 和任务号 int i = writeToSsj(ssj.getPlcDbWriteAddress(), "99", 2, 2); @@ -175,6 +188,7 @@ public class Floor1BothWayInSsjThread implements Runnable { inJob.setStatus(TASK_STATUS_CREATE); inJob.setExecutionPhase(TASK_EP_CREATE); inJob.setFaultFlag("0"); + inJob.setPriority(Long.valueOf(10)); mydoJobService.insertMydoJob(inJob); log.info("托盘码请求作业成功, rwh:{},trayCode:{}", ssj.getTaskNo(), ssj.getTrayCode()); }else{ @@ -203,52 +217,53 @@ public class Floor1BothWayInSsjThread implements Runnable { log.info("托盘码请求作业失败,下发回退 rwh:{},qx:{},trayCode:{}", ssj.getTaskNo(), 2, ssj.getTrayCode()); } } - }else { - //查询下发的任务 - MydoJob param = new MydoJob(); - ArrayList epList = new ArrayList<>(); - epList.add(TASK_EP_CREATE); - epList.add(TASK_EP_SSJ); - param.setEpList(epList); - param.setStatus(TASK_STATUS_CREATE); - param.setEntranceId(ssj.getDeviceCode()); - List mydoJobs = mydoJobService.selectMydoJobList(param); - if (CollUtil.isNotEmpty(mydoJobs)){ - //已请求wms,生成任务,二次下发 - MydoJob mydoJob = mydoJobs.get(0); - int i = writeToSsj(ssj.getPlcDbWriteAddress(),mydoJob.getTaskNo(),1,1); - if (i == 1) { - mydoJob.setExecutionPhase(TASK_EP_SSJ); - mydoJobService.updateMydoJob(mydoJob); - log.info("{}无条码请求作业,二次下发任务号{}:",ssj.getDeviceCode(),mydoJob.getTaskNo()); - } - }else { - //不存在扫不到托盘码的任务 - HashMap paramMap = new HashMap<>(); - paramMap.put("entranceId",ssj.getDeviceCode()); - AjaxResult ajaxResult = apiService.selectMydoJobByNoTrayCode(paramMap); - if (ajaxResult.isSuccess()) { - MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class); - mydoJob2.setExecutionPhase(TASK_EP_CREATE); - mydoJob2.setFaultFlag("0"); - mydoJobService.insertMydoJob(mydoJob2); - int i = writeToSsj(ssj.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); - if (i == 1) { - mydoJob2.setExecutionPhase(TASK_EP_SSJ); - mydoJobService.updateMydoJob(mydoJob2); - log.info("{}无条码请求作业成功,下发任务号{}:",ssj.getDeviceCode(),mydoJob2.getTaskNo()); - } - } else if (ajaxResult.isError()) { - //超大,给plc下发错误信息,等待人工处理 - //托盘大小对不上,给plc下发错误信息,等待人工处理 - //码不对,给plc下发错误信息,等待人工处理 - int i = writeToSsj(ssj.getPlcDbWriteAddress(), "99", Integer.parseInt(ajaxResult.get("code").toString()), 2); - if (i == 1) { - log.info("{}无条码请求作业失败,下发退回{}:",ssj.getDeviceCode(),Integer.parseInt(ajaxResult.get("code").toString())); - } - } - } } +// else { +// //查询下发的任务 +// MydoJob param = new MydoJob(); +// ArrayList epList = new ArrayList<>(); +// epList.add(TASK_EP_CREATE); +// epList.add(TASK_EP_SSJ); +// param.setEpList(epList); +// param.setStatus(TASK_STATUS_CREATE); +// param.setEntranceId(ssj.getDeviceCode()); +// List mydoJobs = mydoJobService.selectMydoJobList(param); +// if (CollUtil.isNotEmpty(mydoJobs)){ +// //已请求wms,生成任务,二次下发 +// MydoJob mydoJob = mydoJobs.get(0); +// int i = writeToSsj(ssj.getPlcDbWriteAddress(),mydoJob.getTaskNo(),1,1); +// if (i == 1) { +// mydoJob.setExecutionPhase(TASK_EP_SSJ); +// mydoJobService.updateMydoJob(mydoJob); +// log.info("{}无条码请求作业,二次下发任务号{}:",ssj.getDeviceCode(),mydoJob.getTaskNo()); +// } +// }else { +// //不存在扫不到托盘码的任务 +// HashMap paramMap = new HashMap<>(); +// paramMap.put("entranceId",ssj.getDeviceCode()); +// AjaxResult ajaxResult = apiService.selectMydoJobByNoTrayCode(paramMap); +// if (ajaxResult.isSuccess()) { +// MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class); +// mydoJob2.setExecutionPhase(TASK_EP_CREATE); +// mydoJob2.setFaultFlag("0"); +// mydoJobService.insertMydoJob(mydoJob2); +// int i = writeToSsj(ssj.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); +// if (i == 1) { +// mydoJob2.setExecutionPhase(TASK_EP_SSJ); +// mydoJobService.updateMydoJob(mydoJob2); +// log.info("{}无条码请求作业成功,下发任务号{}:",ssj.getDeviceCode(),mydoJob2.getTaskNo()); +// } +// } else if (ajaxResult.isError()) { +// //超大,给plc下发错误信息,等待人工处理 +// //托盘大小对不上,给plc下发错误信息,等待人工处理 +// //码不对,给plc下发错误信息,等待人工处理 +// int i = writeToSsj(ssj.getPlcDbWriteAddress(), "99", Integer.parseInt(ajaxResult.get("code").toString()), 2); +// if (i == 1) { +// log.info("{}无条码请求作业失败,下发退回{}:",ssj.getDeviceCode(),Integer.parseInt(ajaxResult.get("code").toString())); +// } +// } +// } +// } } } } 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 73d76a10..920a1752 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 @@ -166,10 +166,10 @@ public class Floor1BothWayOutSsjThread implements Runnable { inOutSsj = PlcSsjRead.deviceSsjMap.get("L2006"); } - List exitList = new ArrayList<>(); - exitList.add("1"); - MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList, roadwayId); + MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1("1", roadwayId); MydoJob inJob = mydoJobService.selectMydoJobByEntranceList1(entrance_id); +// log.info("输送线"+deviceSsj.getDeviceCode()+"空闲:"+ deviceSsj.getKx()+"任务号:"+deviceSsj.getTaskNo()); +// log.info("输送线"+inOutSsj.getDeviceCode()+"入出库模式:"+ inOutSsj.getInOrOut()); if (ObjUtil.isNotNull(mydoJob) && deviceSsj.getKx() == 1 && ssj.getKx() == 0 && ObjUtil.isNull(inJob) && inOutSsj.getInOrOut() == 1 && deviceSsj.getTaskNo() == 0) { //所有线体为空闲 并且存在出库作业 并且不存在入库作业 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 b5c1f027..3b56e428 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 @@ -99,41 +99,6 @@ public class Floor1SingleSsjThread implements Runnable { log.error(e.getMessage(), e); } - - - - - -// for (String type : ssjCodeList.keySet()) { -// //一楼单向巷道口 -// if ("outRoadwaySsj".equals(type)) { -// for (String ssjCode : ssjCodeList.get(type)) { -// try { -// if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) { -// dispatch(PlcSsjRead.deviceSsjMap.get(ssjCode)); -// } else { -// log.error("设备不存在 ssjCode{}", ssjCode); -// } -// } catch (RuntimeException e) { -// log.error(e.getMessage(), e); -// } -// -// } -// } -// if ("outSsj".equals(type)) { -// for (String ssjCode : ssjCodeList.get(type)) { -// try { -// if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) { -// dispatch2(PlcSsjRead.deviceSsjMap.get(ssjCode)); -// } else { -// log.error("设备不存在 ssjCode{}", ssjCode); -// } -// } catch (RuntimeException e) { -// log.error(e.getMessage(), e); -// } -// } -// } -// } try { Thread.sleep(1500); } catch (InterruptedException e) { @@ -181,8 +146,7 @@ public class Floor1SingleSsjThread implements Runnable { public void dispatch(DeviceSsj ssj) { //如果入库请求1 并且 托盘码不为空 if (ssj.getKx() == 1 && ssj.getTaskNo() == 0) { - List exitList = new ArrayList<>(); - exitList.add("1"); + String roadwayId = ""; String entrance_id = ""; if("L2001".equals(ssj.getDeviceCode())){ @@ -194,7 +158,7 @@ public class Floor1SingleSsjThread implements Runnable { roadwayId = "2"; entrance_id = "L2008"; } - MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1(exitList,roadwayId); + MydoJob mydoJob = mydoJobService.selectMydoJobByExitList1("1",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/Floor2InOutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/floor2/Floor2InOutSsjThread.java index 0e5e9813..e3d43e00 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 @@ -134,12 +134,13 @@ public class Floor2InOutSsjThread implements Runnable { List agvQueues = agvQueueService.selectAgvQueueList1(agvQueue); if (!agvQueues.isEmpty()) { //解绑AGV容器 - apiService.deleteAgvTray(agvQueues.get(0)); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - throw new RuntimeException(e); + AjaxResult ajaxResult = apiService.deleteAgvTray(agvQueues.get(0)); + if(ajaxResult.isSuccess()) { + AgvQueue agvQueue1 = agvQueues.get(0); + agvQueue1.setStatus("8"); + agvQueueService.updateAgvQueue(agvQueue1); } + if("L1001".equals(inSsjDevice.getDeviceCode())) { int i = writeToSsj("DB802.100", agvQueues.get(0).getWmsTaskNo(), 2,Integer.parseInt(agvQueues.get(0).getCtnrCode())); if (i == 1) { @@ -154,12 +155,34 @@ public class Floor2InOutSsjThread implements Runnable { } } + }else{ + AgvQueue agvQueue2 = new AgvQueue(); + agvQueue2.setStatus("8"); //end + //todo 与agv对点 + agvQueue2.setPositionCode2(inSsjDevice.getDeviceCode()); + List queueList = agvQueueService.selectAgvQueueList1(agvQueue2); + if (!queueList.isEmpty()) { + if("L1001".equals(inSsjDevice.getDeviceCode())) { + int i = writeToSsj("DB802.100", queueList.get(0).getWmsTaskNo(), 2,Integer.parseInt(queueList.get(0).getCtnrCode())); + if (i == 1) { + log.info("输送机{}AGV放货完成下发任务号{}成功", inSsjDevice.getDeviceCode(), queueList.get(0).getWmsTaskNo()); + + } + } + if("L1003".equals(inSsjDevice.getDeviceCode())) { + int i = writeToSsj("DB802.112", queueList.get(0).getWmsTaskNo(), 2,Integer.parseInt(queueList.get(0).getCtnrCode())); + if (i == 1) { + log.info("输送机{}AGV放货完成下发任务号{}成功", inSsjDevice.getDeviceCode(), queueList.get(0).getWmsTaskNo()); + + } + } + } } } if(inSsjDevice.getKx() == 0 && inSsjDevice.getTaskNo2() > 0){ AgvQueue agvQueue = new AgvQueue(); - agvQueue.setStatus("7"); //end + agvQueue.setStatus("8"); //end //todo 与agv对点 agvQueue.setPositionCode2(inSsjDevice.getDeviceCode()); List agvQueues = agvQueueService.selectAgvQueueList1(agvQueue); @@ -239,6 +262,7 @@ public class Floor2InOutSsjThread implements Runnable { mydoJob2.setExecutionPhase(TASK_EP_CREATE); mydoJob2.setCreateTime(new Date()); mydoJob2.setFaultFlag("0"); + mydoJob2.setPriority(Long.valueOf(10)); mydoJobService.insertMydoJob(mydoJob2); int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); if (i == 1) { @@ -257,50 +281,50 @@ public class Floor2InOutSsjThread implements Runnable { } } - if(StrUtil.isBlank(ssjDevice.getTrayCode()) && ssjDevice.getRkqq()==1 && ssjDevice.getTaskNo()<1000){ - - MydoJob mydoJob1 = new MydoJob(); - mydoJob1.setInOrOut("1"); - mydoJob1.setEntranceId(ssjDevice.getDeviceCode()); -// mydoJob1.setStatus("1"); - List mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob1); - if(!mydoJobs.isEmpty()){ - MydoJob mydoJob2 = mydoJobs.get(0); - int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); - if (i == 1) { - mydoJob2.setExecutionPhase(TASK_EP_SSJ); - mydoJob2.setStatus("3"); - mydoJobService.updateMydoJob(mydoJob2); - log.info(ssjDevice.getDeviceCode()+"输送机下发任务号成功:" + mydoJob2.getTaskNo()); - } - - }else{ - HashMap paramMap = new HashMap<>(); - paramMap.put("size", ssjDevice.getTraySize()); - paramMap.put("entranceId", ssjDevice.getDeviceCode()); - AjaxResult ajaxResult = apiService.selectMydoJobByNoTrayCode(paramMap); - if(ajaxResult.isSuccess()){ - MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class) ; - mydoJob2.setStatus("1"); - mydoJob2.setExecutionPhase(TASK_EP_CREATE); - mydoJob2.setCreateTime(new Date()); - mydoJob2.setFaultFlag("0"); - mydoJobService.insertMydoJob(mydoJob2); - int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); - if (i == 1) { - mydoJob2.setExecutionPhase(TASK_EP_SSJ); - mydoJob2.setStatus("3"); - mydoJobService.updateMydoJob(mydoJob2); - log.info(ssjDevice.getDeviceCode()+"输送机下发任务号成功:" + mydoJob2.getTaskNo()); - } - }else{ - int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(), "99", Integer.parseInt(ajaxResult.get("code").toString()), 2); - if (i == 1) { - log.info(ssjDevice.getDeviceCode()+"输送机下发错误信息成功"); - } - } - } - } +// if(StrUtil.isBlank(ssjDevice.getTrayCode()) && ssjDevice.getRkqq()==1 && ssjDevice.getTaskNo()<1000){ +// +// MydoJob mydoJob1 = new MydoJob(); +// mydoJob1.setInOrOut("1"); +// mydoJob1.setEntranceId(ssjDevice.getDeviceCode()); +//// mydoJob1.setStatus("1"); +// List mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob1); +// if(!mydoJobs.isEmpty()){ +// MydoJob mydoJob2 = mydoJobs.get(0); +// int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); +// if (i == 1) { +// mydoJob2.setExecutionPhase(TASK_EP_SSJ); +// mydoJob2.setStatus("3"); +// mydoJobService.updateMydoJob(mydoJob2); +// log.info(ssjDevice.getDeviceCode()+"输送机下发任务号成功:" + mydoJob2.getTaskNo()); +// } +// +// }else{ +// HashMap paramMap = new HashMap<>(); +// paramMap.put("size", ssjDevice.getTraySize()); +// paramMap.put("entranceId", ssjDevice.getDeviceCode()); +// AjaxResult ajaxResult = apiService.selectMydoJobByNoTrayCode(paramMap); +// if(ajaxResult.isSuccess()){ +// MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class) ; +// mydoJob2.setStatus("1"); +// mydoJob2.setExecutionPhase(TASK_EP_CREATE); +// mydoJob2.setCreateTime(new Date()); +// mydoJob2.setFaultFlag("0"); +// mydoJobService.insertMydoJob(mydoJob2); +// int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1); +// if (i == 1) { +// mydoJob2.setExecutionPhase(TASK_EP_SSJ); +// mydoJob2.setStatus("3"); +// mydoJobService.updateMydoJob(mydoJob2); +// log.info(ssjDevice.getDeviceCode()+"输送机下发任务号成功:" + mydoJob2.getTaskNo()); +// } +// }else{ +// int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(), "99", Integer.parseInt(ajaxResult.get("code").toString()), 2); +// if (i == 1) { +// log.info(ssjDevice.getDeviceCode()+"输送机下发错误信息成功"); +// } +// } +// } +// } } private static final Map PATTERNS = createPatterns(); 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 0586d38f..c8350869 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 @@ -1,5 +1,6 @@ package com.ruoyi.schedule.scheduleTask.ssj.floor2; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; @@ -8,6 +9,7 @@ import cn.hutool.core.util.ObjUtil; import com.ruoyi.api.service.IApiService; import com.ruoyi.bas.cargospace.domain.BasCargoSpace; import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.job.domain.JobCallBack; import com.ruoyi.job.domain.MydoJob; @@ -95,52 +97,75 @@ public class Floor2RoadWaySsjThread implements Runnable { //如果到位,且任务号大于0 if (roadSsjDevice.getDw()==1 && roadSsjDevice.getTaskNo()>1000) { MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(roadSsjDevice.getTaskNo())); - if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)) { - mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); - mydoJobService.updateMydoJob(mydoJob); - } - 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()); - if (CollUtil.isEmpty(ddjDeviceExecutionQueues) && ObjUtil.isNotNull(basCargoSpace) && CollUtil.isNotEmpty(pclList)) { - DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); - ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID()); - ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo())); - ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId()); - ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId())); - ddjDeviceExecutionQueue.setRwzt(0); - ddjDeviceExecutionQueue.setYph(pclList.get(0)); - ddjDeviceExecutionQueue.setYlh(pclList.get(1)); - ddjDeviceExecutionQueue.setYch(pclList.get(2)); - ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon())); - ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn())); - ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor())); - ddjDeviceExecutionQueue.setDdjxf("0"); - ddjDeviceExecutionQueue.setMlfs(5); - ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize()); - ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date())); - ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_1); - ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); + if(ObjUtil.isNotNull(mydoJob)){ + if(mydoJob.getCargoSpaceId() == null || "".equals(mydoJob.getCargoSpaceId())){ + AjaxResult ajaxResult = apiService.requestWmsSpace(mydoJob); + if(ajaxResult.isSuccess()){ + BasCargoSpace space = BeanUtil.toBean(ajaxResult.get("data"), BasCargoSpace.class); + String cargoSpaceId = space.getCargoSpaceId(); + mydoJob.setCargoSpaceId(cargoSpaceId); + mydoJobService.updateMydoJob(mydoJob); + } + } + if(mydoJob.getCargoSpaceId()!=null && !"".equals(mydoJob.getCargoSpaceId())){ + if(mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)){ + mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ); + mydoJobService.updateMydoJob(mydoJob); + } + 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()); + if (CollUtil.isEmpty(ddjDeviceExecutionQueues) && ObjUtil.isNotNull(basCargoSpace) && CollUtil.isNotEmpty(pclList)) { + DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); + ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID()); + ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo())); + ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId()); + ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId())); + ddjDeviceExecutionQueue.setRwzt(0); + ddjDeviceExecutionQueue.setYph(pclList.get(0)); + ddjDeviceExecutionQueue.setYlh(pclList.get(1)); + ddjDeviceExecutionQueue.setYch(pclList.get(2)); + ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon())); + ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn())); + ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor())); + ddjDeviceExecutionQueue.setDdjxf("0"); + ddjDeviceExecutionQueue.setMlfs(5); + ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize()); + ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date())); + ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_1); + ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); - mydoJob.setExecutionPhase(TASK_EP_DDJ); - mydoJobService.updateMydoJob(mydoJob); + mydoJob.setExecutionPhase(TASK_EP_DDJ); + mydoJobService.updateMydoJob(mydoJob); + } + } } } } if(roadSsjDevice.getKx()==1 && roadSsjDevice.getTaskNo() == 0){ - List exitList = new ArrayList<>(); +// List exitList = new ArrayList<>(); +// if("L1002".equals(roadSsjDevice.getDeviceCode())){ +// exitList.add("L1001"); +// } +// if("L1004".equals(roadSsjDevice.getDeviceCode())){ +// exitList.add("L1003"); +// } +// List inList = mydoJobService.getInJobByEntrance(exitList); + String exitId = ""; if("L1002".equals(roadSsjDevice.getDeviceCode())){ - exitList.add("L1001"); + exitId = "L1001"; } if("L1004".equals(roadSsjDevice.getDeviceCode())){ - exitList.add("L1003"); + exitId = "L1003"; } - List inList = mydoJobService.getInJobByEntrance(exitList); + + List inList = mydoJobService.getInJobByEntranceId(exitId); if(inList.size() == 0){ - MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList); +// MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList); + MydoJob mydoJob = mydoJobService.selectMydoJobByExitId(exitId); if (ObjUtil.isNotNull(mydoJob)) { BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); if (ObjUtil.isNull(basCargoSpace)) { @@ -178,7 +203,7 @@ public class Floor2RoadWaySsjThread implements Runnable { } } }else{ - log.info("当前出口"+ exitList+"存在入库任务,无法出库!"); + log.info("当前出口"+ exitId+"存在入库任务,无法出库!"); } } 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 d72c5ca3..8dc6e12c 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 @@ -135,6 +135,7 @@ public class LineSsjThread implements Runnable { mydoJob2.setCreateTime(new Date()); mydoJob2.setTraySize(Convert.toStr(SsjDevice.getTraySize())); mydoJob2.setFaultFlag("0"); + mydoJob2.setPriority(Long.valueOf(10)); mydoJobService.insertMydoJob(mydoJob2); int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), mydoJob2.getTaskNo(), Integer.parseInt(mydoJob2.getTraySize()), 1); if (i == 1) { @@ -154,27 +155,12 @@ public class LineSsjThread implements Runnable { * 8, "没有可用货位!" * 9, "创建工艺入库单失败!" */ - //超大,给plc下发错误信息,AGV搬到缓存区 其余人工处理 -// if ((Integer) ajaxResult.get("code") == 5) { -// int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), "2222", 1, 1); -// if (i == 1) { -// log.info("G1005产线输送机下发超大托盘处理成功"); -// } -// createMoveToPort(SsjDevice); -// } else { -// int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), "99", Integer.parseInt(ajaxResult.get("code").toString()), 2); -// if (i == 1) { -// log.info("G1005产线输送机下发错误信息成功"); -// } -// } } } } if (SsjDevice.getRkqq() == 1 && StrUtil.isBlank(SsjDevice.getTrayCode()) && SsjDevice.getTraySize() != 0 && SsjDevice.getTaskNo() < 1000) { - - //log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}", SsjDevice.getDeviceCode(), "产线", SsjDevice.getTrayCode(), SsjDevice.getTraySize()); //查wcs有没作业,有下发给输送机任务号,覆盖任务号 MydoJob mydoJob = new MydoJob(); mydoJob.setInOrOut("1"); @@ -206,6 +192,7 @@ public class LineSsjThread implements Runnable { mydoJob2.setCreateTime(new Date()); mydoJob2.setTraySize(Convert.toStr(SsjDevice.getTraySize())); mydoJob2.setFaultFlag("0"); + mydoJob2.setPriority(Long.valueOf(10)); mydoJobService.insertMydoJob(mydoJob2); int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), mydoJob2.getTaskNo(), 1, 1); if (i == 1) { @@ -219,19 +206,6 @@ public class LineSsjThread implements Runnable { //超大,给plc下发错误信息,等待人工处理 //托盘大小对不上,给plc下发错误信息,等待人工处理 //码不对,给plc下发错误信息,等待人工处理 - -// if ((Integer) ajaxResult.get("code") == 5) { -// int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), "2222", 1, 1); -// if (i == 1) { -// log.info("G1005产线输送机下发错误信息成功"); -// } -// createMoveToPort(SsjDevice); -// } else { -// int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), "99", Integer.parseInt(ajaxResult.get("code").toString()), 2); -// if (i == 1) { -// log.info("G1005产线输送机下发错误信息成功"); -// } -// } } } @@ -342,39 +316,6 @@ public class LineSsjThread implements Runnable { } - - void createMoveToPort(DeviceSsj SsjDevice) { - WcsPort wcsPort = new WcsPort(); - wcsPort.setStatus("1"); - List wcsPorts = wcsPortService.selectWcsPortList(wcsPort); - List agvQueues = agvQueueService.selectAgvQueueList(new AgvQueue()); - //检查agvQueues中是否有任何一个positionCode2是wcsPorts中的portCode - boolean hasMatchingPort = agvQueues.stream() - .map(AgvQueue::getPositionCode2) - .anyMatch(positionCode2 -> wcsPorts.stream() - .map(WcsPort::getPortCode) - .anyMatch(portCode -> portCode.equals(positionCode2))); - - if (hasMatchingPort == false) { - - if (!wcsPorts.isEmpty()) { - HashMap map = new HashMap<>(); -// map.put("trayCode", mydoJob.getTrayCode()); - map.put("taskNo", StrUtil.uuid()); - //todo 与agv对点 - map.put("startPoint", "G1005"); - map.put("endPoint", wcsPorts.get(0).getPortCode()); - map.put("traySize", "5"); -// map.put("wmsTaskNo", mydoJob.getTaskNo()); - AjaxResult ajaxResult1 = apiService.receiveAgvMoveJob(map); - if (ajaxResult1.isSuccess()) { - log.info("G1005产线生成作业失败,AGV下发搬运至缓存点任务成功:{}", ajaxResult1.get("data")); - - } - } - } - } - private static final Map PATTERNS = createPatterns(); private static Map createPatterns() { diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index 1accf691..45735f46 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -111,19 +111,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and in_or_out > 20 and status = 1 and execution_phase= 0 - order by priority desc,create_time + order by priority asc,create_time @@ -249,15 +246,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item} and in_or_out <= 20 and status = 3 - order by priority desc,create_time desc + order by priority asc,create_time asc + + + +