소스 검색

轨道AGV调度

wuhb 2 주 전
부모
커밋
20e0748104
1개의 변경된 파일63개의 추가작업 그리고 70개의 파일을 삭제
  1. 63 70
      mes/ktg-mes/src/main/java/com/ktg/mes/rms/thread/RailAgvThread.java

+ 63 - 70
mes/ktg-mes/src/main/java/com/ktg/mes/rms/thread/RailAgvThread.java

@@ -63,11 +63,7 @@ public class RailAgvThread extends BaseThread{
                 System.out.println("=========延迟"+rmsTaskPool.getRunDelay()+"秒执行=========");
                 Thread.sleep(rmsTaskPool.getRunDelay()*1000);
             }
-            String robotType = "";
-            Long deviceType = Long.parseLong(rmsTaskPool.getDeviceType());
-            if(deviceType.equals(DeviceTypeEnum.RAILAGV.getValue())){
-                robotType = DeviceTypeEnum.RAILAGV.getKey();
-            }
+            String robotType = DeviceTypeEnum.RAILAGV.getKey();
             String robotId = "";
             RmsTaskPool bindPool = getBindTask();
             if(StringUtils.isNotEmpty(bindPool.getLiftCode())){
@@ -77,41 +73,41 @@ public class RailAgvThread extends BaseThread{
                 robotId = rmsTaskPool.getLiftCode();
             }
             String taskType = rmsTaskPool.getTaskType();
-//            String data = railHelper.sendAgvTask(rmsTaskPool.getFromSite(), rmsTaskPool.getToSite()
-//                    , rmsTaskPool.getPickTime(), rmsTaskPool.getKeyRoute(), taskType
-//                    , robotType, robotId);
-//            JSONObject dataJson = JSONUtil.toBean(data, JSONObject.class);
-//            String rmsRemoteTaskId = dataJson.getStr("id");
-//            if(StringUtils.isNotEmpty(rmsRemoteTaskId)){
-//                if(rmsTaskPool.getIsWait() == 0){
-//                    updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送");
-//                }else{
-//                    updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送,等待中");
-//                }
-//            }else{
-//                throw new Exception("AGV任务请求失败");
-//            }
-//            boolean isRunDone = true;
-//            if(TaskTypeEnum.X2B_ROLLER_BACK_UP.getValue().equals(rmsTaskPool.getTaskType())
-//                ||TaskTypeEnum.X2B_ROLLER_BACK_DOWN.getValue().equals(rmsTaskPool.getTaskType())){
-//                isRunDone = waitAgv(rmsRemoteTaskId);
-//            }else{
-//                if(rmsTaskPool.getIsWait() != 0){    //不是出入库,不滚动,判断等待用wait
-//                    log.info("开始AGV等待任务完成");
-//                    isRunDone = waitAgv(rmsRemoteTaskId);
-//                }
-//            }
-//            if(!isRunDone){
-//                log.info("任务被取消,结束线程");
-//                cancleOrder();
-//                return;
-//            }
-//            waitByTask();
-//            if(StringUtils.isNotNull(rmsRemoteTaskId)){
+            String data = railHelper.sendAgvTask(rmsTaskPool.getFromSite(), rmsTaskPool.getToSite()
+                    , rmsTaskPool.getPickTime(), rmsTaskPool.getKeyRoute(), taskType
+                    , robotType, robotId);
+            JSONObject dataJson = JSONUtil.toBean(data, JSONObject.class);
+            String rmsRemoteTaskId = dataJson.getStr("id");
+            if(StringUtils.isNotEmpty(rmsRemoteTaskId)){
+                if(rmsTaskPool.getIsWait() == 0){
+                    updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送");
+                }else{
+                    updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送,等待中");
+                }
+            }else{
+                throw new Exception("AGV任务请求失败");
+            }
+            boolean isRunDone = true;
+            if(TaskTypeEnum.X2B_ROLLER_BACK_UP.getValue().equals(rmsTaskPool.getTaskType())
+                ||TaskTypeEnum.X2B_ROLLER_BACK_DOWN.getValue().equals(rmsTaskPool.getTaskType())){
+                isRunDone = waitAgv(rmsRemoteTaskId);
+            }else{
+                if(rmsTaskPool.getIsWait() != 0){    //不是出入库,不滚动,判断等待用wait
+                    log.info("开始AGV等待任务完成");
+                    isRunDone = waitAgv(rmsRemoteTaskId);
+                }
+            }
+            if(!isRunDone){
+                log.info("任务被取消,结束线程");
+                cancleOrder();
+                return;
+            }
+            waitByTask();
+            if(StringUtils.isNotNull(rmsRemoteTaskId)){
                 updateOrder();
                 updateRemark(null,2, 2, "成功");
                 checkNextTask();
-//            }
+            }
             rmsTaskPoolService.closeAutoGroupTask(rmsTaskPool);
         }catch (Exception ex){
             log.error("AGV异常:" + JSONUtil.toJsonStr(rmsTaskPool), ex);
@@ -129,43 +125,40 @@ public class RailAgvThread extends BaseThread{
         definition.setPropagationBehaviorName("PROPAGATION_REQUIRED");
         TransactionStatus transaction = transactionManager.getTransaction(definition);
         try {
-            Long deviceType = Long.parseLong(rmsTaskPool.getDeviceType());
-            if(deviceType.equals(DeviceTypeEnum.RAILAGV.getValue())){
-                if(rmsTaskPool.getWaitType() != null && rmsTaskPool.getWaitType() == 2){
-                    //清除料框的标注和是否扫码标识
-                    String boxCode = rmsTaskPool.getBoxCode();
-                    Long lineId = rmsTaskPool.getSourceId();
-                    if(StringUtils.isNotEmpty(boxCode)){
-                        WmRmsBox wmRmsBox = wmRmsBoxService.selectWmRmsBoxByBoxCode(boxCode);
-                        if(wmRmsBox != null && wmRmsBox.getWaitType() != null && wmRmsBox.getWaitType() == 2){
-                            //线边库搬运任务。
-                            //更新出库明细lineId的状态和库存
-                            rmsTaskPoolService.updateXbMoveStock(rmsTaskPool);
-                            // 重置isScan和lineIds
-                            wmRmsBox.setIsScan("-1");
-                            if(StringUtils.isNotEmpty(wmRmsBox.getLineIds())){
-                                String lineIds = wmRmsBox.getLineIds();
-                                String[] lineIdArray = lineIds.split(",");
-                                StringBuilder newLineIds = new StringBuilder();
-                                for (String id : lineIdArray) {
-                                    if (!id.equals(String.valueOf(lineId)))  {
-                                        if (newLineIds.length()  > 0) {
-                                            newLineIds.append(",");
-                                        }
-                                        newLineIds.append(id);
+            if(rmsTaskPool.getWaitType() == 2){
+                //清除料框的标注和是否扫码标识
+                String boxCode = rmsTaskPool.getBoxCode();
+                Long lineId = rmsTaskPool.getSourceId();
+                if(StringUtils.isNotEmpty(boxCode)){
+                    WmRmsBox wmRmsBox = wmRmsBoxService.selectWmRmsBoxByBoxCode(boxCode);
+                    if(wmRmsBox != null && wmRmsBox.getWaitType() != null && wmRmsBox.getWaitType() == 2){
+                        //线边库搬运任务。
+                        //更新出库明细lineId的状态和库存
+                        rmsTaskPoolService.updateXbMoveStock(rmsTaskPool);
+                        // 重置isScan和lineIds
+                        wmRmsBox.setIsScan("-1");
+                        if(StringUtils.isNotEmpty(wmRmsBox.getLineIds())){
+                            String lineIds = wmRmsBox.getLineIds();
+                            String[] lineIdArray = lineIds.split(",");
+                            StringBuilder newLineIds = new StringBuilder();
+                            for (String id : lineIdArray) {
+                                if (!id.equals(String.valueOf(lineId)))  {
+                                    if (newLineIds.length()  > 0) {
+                                        newLineIds.append(",");
                                     }
-                                }
-                                if(StringUtils.isNotEmpty(newLineIds.toString())){
-                                    wmRmsBox.setLineIds(newLineIds.toString());
-                                }else{
-                                    wmRmsBox.setWaitType(-1);
-                                    wmRmsBox.setLineIds("-1");
+                                    newLineIds.append(id);
                                 }
                             }
-                            //搬运结束料框加入出库单信息
-                            wmRmsBox.setItemOutCode(rmsTaskPool.getSourceType());
-                            wmRmsBoxService.updateWmRmsBox2(wmRmsBox);
+                            if(StringUtils.isNotEmpty(newLineIds.toString())){
+                                wmRmsBox.setLineIds(newLineIds.toString());
+                            }else{
+                                wmRmsBox.setWaitType(-1);
+                                wmRmsBox.setLineIds("-1");
+                            }
                         }
+                        //搬运结束料框加入出库单信息
+                        wmRmsBox.setItemOutCode(rmsTaskPool.getSourceType());
+                        wmRmsBoxService.updateWmRmsBox2(wmRmsBox);
                     }
                 }
             }