From 89e6e823e4eeed9c08ac612d8089678ad24b4ef2 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期五, 12 四月 2024 22:18:54 +0800
Subject: [PATCH] #取放货动作

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleOperatorParam.java |    3 +++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java             |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java   |    7 ++++++-
 3 files changed, 58 insertions(+), 1 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
index 0d519de..3f70cf7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
@@ -150,11 +150,16 @@
             return R.error();
         }
 
+        String sourceLoc = null;//婧愬簱浣�
         String targetLoc = null;//浠诲姟鐩爣(鍊熺敤瀛楁)
         String targetSite = param.getShuttleTaskMode();//浠诲姟绫诲瀷(鍊熺敤瀛楁)
         if (param.getShuttleTaskMode().equals("moveLoc")) {
             //杩佺Щ浠诲姟
             targetLoc = param.getTargetLocNo();
+        } else if (param.getShuttleTaskMode().equals("takeMove")) {
+            //鍙栨斁璐т换鍔�
+            targetLoc = param.getTargetLocNo();
+            sourceLoc = param.getSourceLocNo();
         }
 
         Task task = new Task();
@@ -164,7 +169,7 @@
         task.setTaskCtg(taskCtg.getId());
         task.setPriority(10);
         task.setOriginSite(null);
-        task.setOriginLoc(null);
+        task.setOriginLoc(sourceLoc);
         task.setDestSite(targetSite);
         task.setDestLoc(targetLoc);
         task.setIoTime(new Date());
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleOperatorParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleOperatorParam.java
index 00ddd3a..599b045 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleOperatorParam.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleOperatorParam.java
@@ -11,6 +11,9 @@
     // 鍛戒护绫诲瀷
     private String shuttleTaskMode;
 
+    // 婧愬簱浣�
+    private String sourceLocNo;
+
     // 鐩爣搴撲綅
     private String targetLocNo;
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
index 68d7a94..2702cdc 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
@@ -980,6 +980,7 @@
             return motionList;
         }
 
+        String sourceLoc = task.getOriginLoc();//婧愬簱浣�
         String targetLoc = task.getDestLoc();//浠诲姟鐩爣(鍊熺敤瀛楁)
         String targetSite = task.getDestSite();//浠诲姟绫诲瀷(鍊熺敤瀛楁)
 
@@ -1052,6 +1053,54 @@
             }));
         } else if (targetSite.equals("reset")) {
             //澶嶄綅
+        } else if (targetSite.equals("takeMove")) {
+            //鍙栨斁璐�
+            String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
+
+            // 鍒ゆ柇绌挎杞︽槸鍚﹀湪鐩爣灞�
+            if (Utils.getLev(shuttleLocNo) == Utils.getLev(targetLoc)) {
+
+                // 绌挎杞﹁蛋琛岃嚦婧愬簱浣�
+                motionList.addAll(kernelService.shuttleMove(
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(device.getId().intValue());
+                            dto.setLocNo(shuttleLocNo);
+                        })),
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(device.getId().intValue());
+                            dto.setLocNo(sourceLoc);
+                        })),
+                        MotionCtgType.SHUTTLE_MOVE
+                ));
+
+                //鎵樼洏椤跺崌
+                motionList.add(Motion.build(motion -> {
+                    motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
+                    motion.setDevice(String.valueOf(device.getId()));
+                    motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_LIFT.val());
+                }));
+
+                // 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅
+                motionList.addAll(kernelService.shuttleMove(
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(device.getId().intValue());
+                            dto.setLocNo(sourceLoc);
+                        })),
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(device.getId().intValue());
+                            dto.setLocNo(targetLoc);
+                        })),
+                        MotionCtgType.SHUTTLE_MOVE
+                ));
+
+                //鎵樼洏涓嬮檷
+                motionList.add(Motion.build(motion -> {
+                    motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
+                    motion.setDevice(String.valueOf(device.getId()));
+                    motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_DOWN.val());
+                }));
+
+            }
         }
 
         return motionList;

--
Gitblit v1.9.1