From 749ab7303f266992bdd603fbe64fc36b56855739 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 27 三月 2023 11:23:18 +0800
Subject: [PATCH] 四向穿梭车手动模式

---
 src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java     |   15 --
 src/main/java/com/zy/core/model/command/ShuttleCommand.java       |    9 -
 src/main/java/com/zy/core/model/command/ShuttleAssignCommand.java |   12 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java       |    2 
 src/main/java/com/zy/core/thread/ShuttleThread.java               |  160 ++++++++++++++++++--------
 src/main/java/com/zy/common/utils/NavigateUtils.java              |    5 
 src/main/java/com/zy/asrs/controller/ShuttleController.java       |   47 +++----
 src/main/java/com/zy/core/enums/ShuttleTaskModeType.java          |    8 +
 src/main/webapp/views/index.html                                  |    2 
 src/main/java/com/zy/asrs/domain/param/ShuttleOperatorParam.java  |   11 -
 src/main/webapp/views/shuttle.html                                |   56 ++-------
 src/main/java/com/zy/common/utils/NavigateMapData.java            |    9 +
 src/main/java/com/zy/common/utils/NavigateSolution.java           |    2 
 13 files changed, 175 insertions(+), 163 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ShuttleController.java b/src/main/java/com/zy/asrs/controller/ShuttleController.java
index f6b7fe7..fb88e02 100644
--- a/src/main/java/com/zy/asrs/controller/ShuttleController.java
+++ b/src/main/java/com/zy/asrs/controller/ShuttleController.java
@@ -6,13 +6,9 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
-import com.zy.asrs.domain.enums.CrnStatusType;
 import com.zy.asrs.domain.param.ShuttleOperatorParam;
-import com.zy.asrs.domain.param.SteModeParam;
-import com.zy.asrs.domain.param.SteOperatorParam;
 import com.zy.asrs.domain.vo.*;
 import com.zy.asrs.entity.BasShuttle;
-import com.zy.asrs.entity.BasSte;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.BasShuttleService;
 import com.zy.asrs.service.WrkMastService;
@@ -21,16 +17,12 @@
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.*;
 import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.SteSlave;
 import com.zy.core.model.Task;
+import com.zy.core.model.command.ShuttleAssignCommand;
 import com.zy.core.model.command.ShuttleCommand;
-import com.zy.core.model.command.SteCommand;
 import com.zy.core.model.protocol.ShuttleProtocol;
-import com.zy.core.model.protocol.SteProtocol;
 import com.zy.core.properties.SlaveProperties;
-import com.zy.core.properties.SystemProperties;
 import com.zy.core.thread.ShuttleThread;
-import com.zy.core.thread.SteThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -38,6 +30,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Random;
 
 /**
  * 鍥涘悜绌挎杞︽帴鍙�
@@ -77,9 +70,6 @@
             if (!Cools.isEmpty(shuttleProtocol.getBusyStatus())) {
                 vo.setStatus(shuttleProtocol.getBusyStatusType().desc); //  鐘舵��
             }
-            vo.setRow(shuttleProtocol.getRow());
-            vo.setBay(shuttleProtocol.getBay());
-            vo.setLev(shuttleProtocol.getLev());
             vo.setBatteryPower(shuttleProtocol.getBatteryPower() + "%");
             vo.setSpeed(shuttleProtocol.getCurrentMoveServoSpeed());
             if (!Cools.isEmpty(shuttleProtocol.getErrorCode())) {
@@ -127,6 +117,12 @@
             vo.setPakMk(shuttleProtocol.getPakMk().toString());    // 浣滀笟鏍囪
         }
         return R.ok().add(list);
+    }
+
+    @PostMapping("/latest/data/shuttle")
+    @ManagerAuth(memo = "鍥涘悜绌挎杞﹀疄鏃舵暟鎹�")
+    public R shuttleLatestData(){
+        return R.ok();
     }
 
     @PostMapping("/output/shuttle")
@@ -226,7 +222,7 @@
 //            }
 //        }
         ShuttleCommand shuttleCommand = new ShuttleCommand();
-        shuttleCommand.setTaskNo(vo.getWorkNo());
+        shuttleCommand.setTaskNo(vo.getWorkNo().shortValue());
         if (MessageQueue.offer(SlaveType.Shuttle, vo.getShuttleNo(), new Task(2, shuttleCommand))) {
         } else {
             throw new CoolException("鍛戒护涓嬪彂澶辫触");
@@ -265,23 +261,16 @@
                 if (shuttleProtocol == null) {
                     throw new CoolException("鍥涘悜绌挎杞︿笉鍦ㄧ嚎");
                 }
+
                 ShuttleTaskModeType shuttleTaskModeType = ShuttleTaskModeType.get(param.getShuttleTaskMode());
-                ShuttleCommand shuttleCommand = new ShuttleCommand();
-                shuttleCommand.setShuttleNo(shuttleSlave.getId()); // 鍥涘悜绌挎杞︾紪鍙�
-//                if (param.getShuttleTaskMode() == 16) {
-//                    steCommand.setComplete(true);
-//                } else if (param.getSteTaskMode() == 99) {
-//                    steCommand.setControlMode((short) 1);
-//                } else if (param.getSteTaskMode() == 100) {
-//                    steCommand.setControlMode((short) 0);
-//                } else {
-//                    if (steTaskModeType == null) {
-//                        throw new CoolException("浠诲姟绫诲瀷閿欒");
-//                    }
-//                    steCommand.setTaskNo(param.getTaskNo()); // 宸ヤ綔鍙�
-//                    steCommand.setTaskMode(steTaskModeType);
-//                }
-                if (MessageQueue.offer(SlaveType.Shuttle, shuttleSlave.getId(), new Task(2, shuttleCommand))) {
+                ShuttleAssignCommand command = new ShuttleAssignCommand();
+                command.setShuttleNo(shuttleSlave.getId().shortValue()); // 鍥涘悜绌挎杞︾紪鍙�
+                command.setTaskMode(shuttleTaskModeType.id.shortValue());
+                command.setSourceLocNo(param.getSourceLocNo());
+                command.setDistLocNo(param.getDistLocNo());
+                command.setTaskNo((short) 9999);
+
+                if (MessageQueue.offer(SlaveType.Shuttle, shuttleSlave.getId(), new Task(3, command))) {
                     return R.ok();
                 } else {
                     throw new CoolException("鍛戒护涓嬪彂澶辫触");
diff --git a/src/main/java/com/zy/asrs/domain/param/ShuttleOperatorParam.java b/src/main/java/com/zy/asrs/domain/param/ShuttleOperatorParam.java
index 3e198e3..d10b5fc 100644
--- a/src/main/java/com/zy/asrs/domain/param/ShuttleOperatorParam.java
+++ b/src/main/java/com/zy/asrs/domain/param/ShuttleOperatorParam.java
@@ -14,13 +14,10 @@
     // 浠诲姟鍙�
     private Integer taskNo = 0;
 
-    // 鐩爣搴撲綅-鎺�
-    private Short row;
+    // 鍚姩搴撲綅
+    private String sourceLocNo;
 
-    // 鐩爣搴撲綅-鍒�
-    private Short bay;
-
-    // 鐩爣搴撲綅-灞�
-    private Short lev;
+    // 鐩爣搴撲綅
+    private String distLocNo;
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index b76cabc..a8fa25d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -635,7 +635,7 @@
                     //浠诲姟鍙�
                     assignCommand.setTaskNo(wrkSts.getWrkNo().shortValue());
                     //鍏ュ嚭搴撴ā寮�
-                    assignCommand.setTaskMode(0);
+                    assignCommand.setTaskMode((short) 0);
                     //婧愬簱浣�
                     assignCommand.setSourceLocNo(wrkSts.getSourceLocNo());
                     //鐩爣搴撲綅
diff --git a/src/main/java/com/zy/common/utils/NavigateMapData.java b/src/main/java/com/zy/common/utils/NavigateMapData.java
index 7ffae0e..d463714 100644
--- a/src/main/java/com/zy/common/utils/NavigateMapData.java
+++ b/src/main/java/com/zy/common/utils/NavigateMapData.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.zy.core.enums.ShuttleTaskModeType;
 
 import java.io.*;
 import java.util.ArrayList;
@@ -12,15 +13,17 @@
 public class NavigateMapData {
 
     public int[][] getData() {
-        return getData("in");
+        return getData(ShuttleTaskModeType.PAK_IN.id);
     }
 
-    public int[][] getData(String mapType) {
+    public int[][] getData(Integer mapType) {
         try {
             String mapFilename = "";
-            if (mapType.equals("in")) {
+            if (mapType == ShuttleTaskModeType.PAK_IN.id) {
+                //鍏ュ簱鍦板浘
                 mapFilename = "mapIn.json";
             }else {
+                //鍑哄簱鍦板浘
                 mapFilename = "mapOut.json";
             }
 
diff --git a/src/main/java/com/zy/common/utils/NavigateSolution.java b/src/main/java/com/zy/common/utils/NavigateSolution.java
index 89046a8..ea512b8 100644
--- a/src/main/java/com/zy/common/utils/NavigateSolution.java
+++ b/src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -21,7 +21,7 @@
         this.map = data;
     }
 
-    public NavigateSolution(String mapType) {
+    public NavigateSolution(Integer mapType) {
         //杞藉叆鍦板浘
         NavigateMapData mapData = new NavigateMapData();
         int[][] data = mapData.getData(mapType);
diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 7a592cb..fd743d4 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -1,6 +1,7 @@
 package com.zy.common.utils;
 
 import com.zy.common.model.NavigateNode;
+import com.zy.core.enums.ShuttleTaskModeType;
 
 import java.util.*;
 
@@ -9,7 +10,7 @@
  */
 public class NavigateUtils {
 
-    public static List<NavigateNode> calc(String startPoint, String endPoint, String mapType) {
+    public static List<NavigateNode> calc(String startPoint, String endPoint, Integer mapType) {
         //閫氳繃寮�濮嬬紪鍙峰拰缁撴潫缂栧彿鑾峰彇瀵瑰簲鐨剎y杞村潗鏍�
         int[] startArr = NavigatePositionConvert.positionToXY(startPoint);//寮�濮嬭妭鐐�
         int[] endArr = NavigatePositionConvert.positionToXY(endPoint);//缁撴潫鑺傜偣
@@ -150,7 +151,7 @@
 
     public static void main(String[] args) {
         //璁$畻璺緞
-        List<NavigateNode> calc = calc("1000901", "0201801", "out");
+        List<NavigateNode> calc = calc("1000901", "0201801", ShuttleTaskModeType.PAK_OUT.id);
         System.out.println(calc);
         System.out.println("------------------------");
 //        List<NavigateNode> calc = calc("0501401", "0201801", "out");
diff --git a/src/main/java/com/zy/core/enums/ShuttleTaskModeType.java b/src/main/java/com/zy/core/enums/ShuttleTaskModeType.java
index a24d901..583d156 100644
--- a/src/main/java/com/zy/core/enums/ShuttleTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/ShuttleTaskModeType.java
@@ -3,6 +3,14 @@
 public enum ShuttleTaskModeType {
 
     INIT(0, "鍒濆"),    // 鍒濆
+    PAK_IN(1, "鍏ュ簱"),
+    PAK_OUT(2, "鍑哄簱"),
+    PALLET_LIFT(3, "鎵樼洏椤跺崌"),
+    PALLET_DOWN(4, "鎵樼洏涓嬮檷"),
+    MOVE_LEFT(5, "宸︾Щ"),
+    MOVE_RIGHT(6, "鍙崇Щ"),
+    MOVE_TOP(7, "鍓嶇Щ"),
+    MOVE_BOTTOM(8, "鍚庣Щ"),
     ;
 
     public Integer id;
diff --git a/src/main/java/com/zy/core/model/command/ShuttleAssignCommand.java b/src/main/java/com/zy/core/model/command/ShuttleAssignCommand.java
index 556bd23..1017aa9 100644
--- a/src/main/java/com/zy/core/model/command/ShuttleAssignCommand.java
+++ b/src/main/java/com/zy/core/model/command/ShuttleAssignCommand.java
@@ -17,10 +17,16 @@
 
     /**
      * 浣滀笟绫诲瀷
-     * 0: 鍏ュ簱
-     * 1锛� 鍑哄簱
+     * 1: 鍏ュ簱
+     * 2锛� 鍑哄簱
+     * 3锛� 鎵樼洏椤跺崌
+     * 4锛� 鎵樼洏涓嬮檷
+     * 5锛� 宸︾Щ
+     * 6锛� 鍙崇Щ
+     * 7锛� 鍓嶇Щ
+     * 8锛� 鍚庣Щ
      */
-    private Integer taskMode = 0;
+    private Short taskMode = 0;
 
     /**
      * 婧愬簱浣�
diff --git a/src/main/java/com/zy/core/model/command/ShuttleCommand.java b/src/main/java/com/zy/core/model/command/ShuttleCommand.java
index 2701793..175783c 100644
--- a/src/main/java/com/zy/core/model/command/ShuttleCommand.java
+++ b/src/main/java/com/zy/core/model/command/ShuttleCommand.java
@@ -11,22 +11,17 @@
     /**
      * 鍥涘悜绌挎杞﹀彿
      */
-    private Integer shuttleNo = 0;
+    private Short shuttleNo = 0;
 
     /**
      * 浠诲姟鍙�
      */
-    private Integer taskNo = 0;
+    private Short taskNo = 0;
 
     /**
      * 浣滀笟绫诲瀷
      */
     private Short taskMode = 0;
-
-    /**
-     * 浠诲姟纭 false锛氭湭纭 true锛氬凡纭
-     */
-    private Boolean complete = Boolean.FALSE;
 
     /**
      * 鎺у埗鎸囦护瀛�
diff --git a/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java b/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java
index 5412f9c..a64075c 100644
--- a/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java
@@ -32,21 +32,6 @@
     private String locNo;
 
     /**
-     * 鎺�
-     */
-    private Short row;
-
-    /**
-     * 鍒�
-     */
-    private Short bay;
-
-    /**
-     * 灞�
-     */
-    private Short lev;
-
-    /**
      * 灏忚溅蹇欑姸鎬佷綅
      * 1: 蹇�
      * 0: 绌洪棽
diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index bbf61c4..2586420 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -66,10 +66,10 @@
                     case 1:
                         readStatus();
                         break;
-//                    // 鍐欏叆鏁版嵁
-//                    case 2:
-//                        write((ShuttleCommand) task.getData());
-//                        break;
+                    // 鍐欏叆鏁版嵁
+                    case 2:
+                        write((ShuttleCommand) task.getData());
+                        break;
                     //涓嬪彂浠诲姟
                     case 3:
                         assignWork((ShuttleAssignCommand) task.getData());
@@ -189,46 +189,77 @@
             return false;
         }
 
-        command.setShuttleNo(slave.getId());
+        command.setShuttleNo(slave.getId().shortValue());
         // 寮�濮嬩换鍔�
         short[] array = new short[17];
         //鎺у埗鎸囦护瀛�
         array[0] = command.getCommandWord();
-        //鍚浜岀淮缂栧彿
-        array[1] = command.getStartCodeNum();
-        //涓棿浜岀淮缂栧彿
-        array[2] = command.getMiddleCodeNum();
-        //鐩爣浜岀淮缂栧彿
-        array[3] = command.getDistCodeNum();
+        if (command.getStartCodeNum() != null) {
+            //鍚浜岀淮缂栧彿
+            array[1] = command.getStartCodeNum();
+        }
 
-        //璧风偣鍒扮洰鏍囩偣鐨勮窛绂婚暱搴︼紝鍏堝皢int杞负byte鏁扮粍锛屽啀灏哹yte鏁扮粍杞垚涓や釜short锛屽垎鍒崰鐢�4鍜�5绌洪棿
-        short[] startToDistDistances = CommonUtils.intToShorts(command.getStartToDistDistance());
-        array[4] = startToDistDistances[0];
-        array[5] = startToDistDistances[1];
+        if (command.getMiddleCodeNum() != null) {
+            //涓棿浜岀淮缂栧彿
+            array[2] = command.getMiddleCodeNum();
+        }
 
-        //涓棿鐐瑰埌鐩爣鐐圭殑璺濈闀垮害锛屽厛灏唅nt杞负byte鏁扮粍锛屽啀灏哹yte鏁扮粍杞垚涓や釜short锛屽垎鍒崰鐢�4鍜�5绌洪棿
-        short[] middleToDistDistances = CommonUtils.intToShorts(command.getMiddleToDistDistance());
-        array[6] = middleToDistDistances[0];
-        array[7] = middleToDistDistances[1];
+        if (command.getDistCodeNum() != null) {
+            //鐩爣浜岀淮缂栧彿
+            array[3] = command.getDistCodeNum();
+        }
 
-        //灏忚溅杩愯鏂瑰悜
-        array[8] = command.getRunDirection();
-        //鎵樼洏椤跺崌
-        array[9] = command.getPalletLift();
+        if (command.getStartToDistDistance() != null) {
+            //璧风偣鍒扮洰鏍囩偣鐨勮窛绂婚暱搴︼紝鍏堝皢int杞负byte鏁扮粍锛屽啀灏哹yte鏁扮粍杞垚涓や釜short锛屽垎鍒崰鐢�4鍜�5绌洪棿
+            short[] startToDistDistances = CommonUtils.intToShorts(command.getStartToDistDistance());
+            array[4] = startToDistDistances[0];
+            array[5] = startToDistDistances[1];
+        }
 
-        //灏忚溅寮哄埗绉诲姩璺濈锛屽厛灏唅nt杞负byte鏁扮粍锛屽啀灏哹yte鏁扮粍杞垚涓や釜short锛屽垎鍒崰鐢�4鍜�5绌洪棿
-        short[] forceMoveDistances = CommonUtils.intToShorts(command.getForceMoveDistance());
-        array[10] = forceMoveDistances[0];
-        array[11] = forceMoveDistances[1];
+        if (command.getMiddleToDistDistance() != null) {
+            //涓棿鐐瑰埌鐩爣鐐圭殑璺濈闀垮害锛屽厛灏唅nt杞负byte鏁扮粍锛屽啀灏哹yte鏁扮粍杞垚涓や釜short锛屽垎鍒崰鐢�4鍜�5绌洪棿
+            short[] middleToDistDistances = CommonUtils.intToShorts(command.getMiddleToDistDistance());
+            array[6] = middleToDistDistances[0];
+            array[7] = middleToDistDistances[1];
+        }
 
-        //鍏呯數寮�鍏�
-        array[12] = command.getChargeSwitch();
-        //灏忚溅IO鎺у埗
-        array[13] = command.getIOControl();
-        //灏忚溅杩愯閫熷害
-        array[14] = command.getRunSpeed();
-        //灏忚溅闆疯揪澶囩敤
-        array[15] = command.getRadarTmp();
+        if (command.getRunDirection() != null) {
+            //灏忚溅杩愯鏂瑰悜
+            array[8] = command.getRunDirection();
+        }
+
+        if (command.getPalletLift() != null) {
+            //鎵樼洏椤跺崌
+            array[9] = command.getPalletLift();
+        }
+
+        if (command.getForceMoveDistance() != null) {
+            //灏忚溅寮哄埗绉诲姩璺濈锛屽厛灏唅nt杞负byte鏁扮粍锛屽啀灏哹yte鏁扮粍杞垚涓や釜short锛屽垎鍒崰鐢�4鍜�5绌洪棿
+            short[] forceMoveDistances = CommonUtils.intToShorts(command.getForceMoveDistance());
+            array[10] = forceMoveDistances[0];
+            array[11] = forceMoveDistances[1];
+        }
+
+        if (command.getChargeSwitch() != null) {
+            //鍏呯數寮�鍏�
+            array[12] = command.getChargeSwitch();
+        }
+
+        if (command.getIOControl() != null) {
+            //灏忚溅IO鎺у埗
+            array[13] = command.getIOControl();
+        }
+
+        if (command.getRunSpeed() != null) {
+            //灏忚溅杩愯閫熷害
+            array[14] = command.getRunSpeed();
+        }
+
+        if (command.getRadarTmp() != null) {
+            //灏忚溅闆疯揪澶囩敤
+            array[15] = command.getRadarTmp();
+        }
+
         //鎸囦护缁撴潫浣�
         array[16] = command.getCommandEnd();
 
@@ -255,23 +286,50 @@
 
     //鍒嗛厤浠诲姟
     private void assignWork(ShuttleAssignCommand assignCommand) {
-        //璁$畻璺緞
-        List<NavigateNode> calc = NavigateUtils.calc(assignCommand.getSourceLocNo(), assignCommand.getDistLocNo(), "in");
-        //鑾峰彇鍒嗘璺緞
-        ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(calc);
-        //灏嗘map瀛樺叆redis涓�
-        HashMap<String, Object> map = new HashMap<>();
-        //鍛戒护鎵ц姝ュ簭
-        map.put("commandStep", 0);
-        //璺緞鏁版嵁
-        map.put("path", data);
-        //宸ヤ綔鍙�
-        map.put("wrk_no", assignCommand.getTaskNo());
-        //浠诲姟鏁版嵁淇濆瓨鍒皉edis
-        redisUtil.set("wrk_no_" + assignCommand.getTaskNo(), JSON.toJSONString(map));
+        ShuttleCommand command = new ShuttleCommand();
+        switch (assignCommand.getTaskMode()) {
+            case 1:
+            case 2:
+                //璁$畻璺緞
+                List<NavigateNode> calc = NavigateUtils.calc(assignCommand.getSourceLocNo(), assignCommand.getDistLocNo(), assignCommand.getTaskMode().intValue());
+                if (calc != null) {
+                    //鑾峰彇鍒嗘璺緞
+                    ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(calc);
+                    //灏嗘map瀛樺叆redis涓�
+                    HashMap<String, Object> map = new HashMap<>();
+                    //鍛戒护鎵ц姝ュ簭
+                    map.put("commandStep", 0);
+                    //璺緞鏁版嵁
+                    map.put("path", data);
+                    //宸ヤ綔鍙�
+                    map.put("wrk_no", assignCommand.getTaskNo());
+                    //浠诲姟鏁版嵁淇濆瓨鍒皉edis
+                    redisUtil.set("wrk_no_" + assignCommand.getTaskNo(), JSON.toJSONString(map));
+                    shuttleProtocol.setTaskNo(assignCommand.getTaskNo());
 
-        //鎵ц涓嬪彂浠诲姟
-        executeWork(assignCommand.getTaskNo());
+                    //鎵ц涓嬪彂浠诲姟
+                    executeWork(assignCommand.getTaskNo());
+                }
+                break;
+            case 3:
+            case 4:
+                command.setCommandWord((short) 2);
+                command.setPalletLift(assignCommand.getTaskMode() == 3 ? (short)1 : (short)2);
+                command.setCommandEnd((short) 1);
+                write(command);
+                break;
+            case 5:
+            case 6:
+            case 7:
+            case 8:
+                command.setCommandWord((short) 3);
+                command.setForceMoveDistance(1000);
+                command.setRunDirection((short) (assignCommand.getTaskMode() - 4));
+                command.setCommandEnd((short) 1);
+                write(command);
+                break;
+        }
+
     }
 
     //鎵ц涓嬪彂鐨勬寚浠�
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 043106d..bbbf794 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -20,7 +20,7 @@
         <ul class="cl-effect-4">
             <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
             <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
-            <li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>
+<!--            <li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>-->
 <!--            <li><a id="ste" onclick="nav(this.id)" class="nav-unselect" href="#">绌挎杞�</a></li>-->
             <li><a id="shuttle" onclick="nav(this.id)" class="nav-unselect" href="#">鍥涘悜绌挎杞�</a></li>
         </ul>
diff --git a/src/main/webapp/views/shuttle.html b/src/main/webapp/views/shuttle.html
index f1eafbb..1fde92d 100644
--- a/src/main/webapp/views/shuttle.html
+++ b/src/main/webapp/views/shuttle.html
@@ -95,49 +95,17 @@
                 <!-- 璁惧浠诲姟鎿嶄綔 -->
                 <div class="task-operator">
                     <div style="display: flex;">
-                        <div class="task-operator" style="height: auto;width: auto;">
+                        <div class="task-operator" style="height: auto;width: 100%;">
                             <div class="operator-item" style="height: auto">
-                                <span class="select-title">婧愮珯/婧愬簱浣�</span>
+                                <span class="select-title">婧愬簱浣�/鐩爣搴撲綅</span>
                                 <div class="select-container" style="height: auto">
                                     <div class="select-container-item">
-                                        <span>绔�</span>
-                                        <label><input id="sourceStaNo" type="number" name="points" min="0" /></label>
+                                        <span>婧愬簱浣�</span>
+                                        <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label>
                                     </div>
                                     <div class="select-container-item">
-                                        <span>鎺�</span>
-                                        <label><input id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
-                                    </div>
-                                    <div class="select-container-item">
-                                        <span>鍒�</span>
-                                        <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
-                                    </div>
-                                    <div class="select-container-item">
-                                        <span>灞�</span>
-                                        <label><input id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-
-                        <div class="task-operator" style="height: auto;width: auto;">
-                            <div class="operator-item" style="height: auto">
-                                <span class="select-title">婧愮珯/婧愬簱浣�</span>
-                                <div class="select-container" style="height: auto">
-                                    <div class="select-container-item">
-                                        <span>绔�</span>
-                                        <label><input id="distStaNo" type="number" name="points" min="0" /></label>
-                                    </div>
-                                    <div class="select-container-item">
-                                        <span>鎺�</span>
-                                        <label><input id="distRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
-                                    </div>
-                                    <div class="select-container-item">
-                                        <span>鍒�</span>
-                                        <label><input id="distBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
-                                    </div>
-                                    <div class="select-container-item">
-                                        <span>灞�</span>
-                                        <label><input id="distLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+                                        <span>鐩爣搴撲綅</span>
+                                        <label><input id="distLocNo" type="text" name="distLocNo" /></label>
                                     </div>
                                 </div>
                             </div>
@@ -147,14 +115,14 @@
                     <fieldset style="height: auto;padding-bottom: 20px;">
                         <legend>鎵嬪姩鎿嶄綔</legend>
                         <div class="button-group">
-                            <button class="item" onclick="shuttleOperator(4)">鎵樼洏椤跺崌</button>
-                            <button class="item" onclick="shuttleOperator(4)">鎵樼洏鏀句笅</button>
+                            <button class="item" onclick="shuttleOperator(1)">鍏ュ簱</button>
+                            <button class="item" onclick="shuttleOperator(2)">鍑哄簱</button>
+                            <button class="item" onclick="shuttleOperator(3)">鎵樼洏椤跺崌</button>
+                            <button class="item" onclick="shuttleOperator(4)">鎵樼洏涓嬮檷</button>
                             <button class="item" onclick="shuttleOperator(5)">宸︾Щ</button>
                             <button class="item" onclick="shuttleOperator(6)">鍙崇Щ</button>
                             <button class="item" onclick="shuttleOperator(7)">鍓嶇Щ</button>
                             <button class="item" onclick="shuttleOperator(8)">鍚庣Щ</button>
-                            <button class="item" onclick="shuttleOperator(9)">寮哄埗绉诲姩</button>
-                            <button class="item" onclick="shuttleOperator(16)">浠诲姟瀹屾垚</button>
                         </div>
                     </fieldset>
                 </div>
@@ -696,7 +664,9 @@
     function shuttleOperator(shuttleTaskMode) {
         http.post(baseUrl+"/shuttle/operator/shuttle", {
             shuttleNo: $('input[name="shuttleSelect"]:checked').val(),
-            shuttleTaskMode: shuttleTaskMode
+            shuttleTaskMode: shuttleTaskMode,
+            sourceLocNo: $("#sourceLocNo").val(),
+            distLocNo: $("#distLocNo").val()
         }, function (res) {
             layer.msg(res.msg, {icon: 1});
         });

--
Gitblit v1.9.1