From d835d1b51f832889929cdf69010034a30ef44d02 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 17 十月 2024 13:57:29 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/execute/FlowExecute.java |  202 ++------------------------------------------------
 1 files changed, 8 insertions(+), 194 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/execute/FlowExecute.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/execute/FlowExecute.java
index 07dca21..a666188 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/execute/FlowExecute.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/execute/FlowExecute.java
@@ -4,22 +4,10 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.asrs.framework.common.Cools;
-import com.zy.asrs.framework.exception.CoolException;
-import com.zy.asrs.wcs.core.domain.dto.MotionDto;
 import com.zy.asrs.wcs.core.entity.Motion;
 import com.zy.asrs.wcs.core.entity.Task;
-import com.zy.asrs.wcs.core.kernel.KernelService;
 import com.zy.asrs.wcs.core.service.TaskService;
 import com.zy.asrs.wcs.core.utils.RedisUtil;
-import com.zy.asrs.wcs.core.utils.ShuttleDispatcher;
-import com.zy.asrs.wcs.core.utils.Utils;
-import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
-import com.zy.asrs.wcs.rcs.entity.Device;
-import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
-import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol;
-import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
-import com.zy.asrs.wcs.rcs.thread.LiftThread;
-import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -28,16 +16,18 @@
 import java.util.List;
 
 @Component
-public class FlowExecute {
+public class FlowExecute extends BaseExecute {
 
     @Autowired
     private RedisUtil redisUtil;
     @Autowired
     private TaskService taskService;
     @Autowired
-    private ShuttleDispatcher shuttleDispatcher;
+    private ShuttleExecute shuttleExecute;
     @Autowired
-    private KernelService kernelService;
+    private LiftExecute liftExecute;
+    @Autowired
+    private DevpExecute devpExecute;
 
     //鎵ц娴佺▼鍥�
     public boolean execute(List<JSONObject> list) {
@@ -85,191 +75,15 @@
         String type = data.getString("type");
         boolean result = false;
         if (type.equals("devp")) {
-            result = executeDevpFlow(task, data, redisKey);
+            result = devpExecute.execute(task, data, redisKey);
         } else if (type.equals("shuttle")) {
-            result = executeShuttleFlow(task, data, redisKey);
+            result = shuttleExecute.execute(task, data, redisKey);
         } else if (type.equals("lift")) {
-            result = executeLiftFlow(task, data, redisKey);
+            result = liftExecute.execute(task, data, redisKey);
         }
         return result;
     }
 
-    private JSONObject findFLow(List<JSONObject> list, String id) {
-        for (JSONObject flow : list) {
-            if (flow.getString("id").equals(id)) {
-                return flow;
-            }
-        }
-        return null;
-    }
-
-    private boolean executeDevpFlow(Task task, JSONObject data, String redisKey) {
-        JSONObject devpType = data.getJSONObject("devpType");
-        String staNo = devpType.getString("staNo");
-        //鎼滅储宸ヤ綔
-
-        return true;
-    }
-
-    private boolean executeShuttleFlow(Task task, JSONObject data, String redisKey) {
-        JSONObject shuttleType = data.getJSONObject("shuttleType");
-        String oper = shuttleType.getString("shuttleOper");
-        if (oper.equals("searchIdleShuttle")) {
-            //鎼滅储绌洪棽杞�
-            ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
-            if (shuttleThread == null) {
-                throw new CoolException("绌挎杞︿笉瀛樺湪");
-            }
-            //瀛樺叆缂撳瓨
-            redisSet(redisKey, "shuttleDevice", shuttleThread.getDevice());
-            return true;
-        } else if (oper.equals("judgeShuttleCurrentTaskLev")) {
-            //鍒ゆ柇灏忚溅鏄惁鍦ㄤ换鍔℃ゼ灞�
-            //鍙栧嚭缂撳瓨灏忚溅
-            Object shuttleDeviceObj = redisGet(redisKey, "shuttleDevice");
-            if (shuttleDeviceObj == null) {
-                throw new CoolException("绌挎杞︾紦瀛樹负绌�");
-            }
-            Device device = JSON.parseObject(String.valueOf(shuttleDeviceObj), Device.class);
-            if (device == null) {
-                throw new CoolException("绌挎杞﹁澶囦笉瀛樺湪");
-            }
-
-            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
-            if (shuttleThread == null) {
-                throw new CoolException("绌挎杞︿笉瀛樺湪");
-            }
-
-            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
-            if (shuttleProtocol == null) {
-                throw new CoolException("绌挎杞︿笉瀛樺湪");
-            }
-
-            //灏忚溅鍧愭爣
-            String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
-            String taskLocNo = null;
-            if (task.getTaskSts() < 100) {
-                taskLocNo = task.getDestLoc();
-            } else if (task.getTaskSts() > 100 && task.getTaskSts() < 200) {
-                taskLocNo = task.getOriginLoc();
-            }
-
-            // 灏忚溅鍜屼换鍔℃ゼ灞備竴鑷�
-            if (Utils.getLev(shuttleLocNo) == Utils.getLev(taskLocNo)) {
-                return true;
-            }else {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    private boolean executeLiftFlow(Task task, JSONObject data, String redisKey) {
-        Object object = redisGet(redisKey, "motionList");
-        List<Motion> motionList = JSON.parseArray(JSON.toJSONString(object), Motion.class);
-
-        Object liftDeviceObj = redisGet(redisKey, "liftDevice");
-        if (liftDeviceObj == null) {
-            throw new CoolException("鎻愬崌鏈虹紦瀛樹负绌�");
-        }
-
-        Device device = JSON.parseObject(String.valueOf(liftDeviceObj), Device.class);
-        if (device == null) {
-            throw new CoolException("鎻愬崌鏈鸿澶囦笉瀛樺湪");
-        }
-
-        LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, device.getId().intValue());
-        if (liftThread == null) {
-            throw new CoolException("鎻愬崌鏈轰笉瀛樺湪");
-        }
-
-        LiftProtocol liftProtocol = liftThread.getStatus();
-        if (liftProtocol == null) {
-            throw new CoolException("鎻愬崌鏈轰笉瀛樺湪");
-        }
-
-        JSONObject liftType = data.getJSONObject("liftType");
-        String opera = liftType.getString("liftOper");
-        if (opera.equals("move")) {
-            //鎻愬崌鏈哄崌闄�
-            String sourceLevStr = liftType.getString("sourceLev");
-            String targetLevStr = liftType.getString("targetLev");
-            Integer sourceLev = getLiftOperaLev(sourceLevStr, task, redisKey);
-            Integer targetLev = getLiftOperaLev(targetLevStr, task, redisKey);
-
-            motionList.addAll(kernelService.liftMove(
-                    MotionDto.build((dto -> {
-                        dto.setLiftNo(device.getId().intValue());
-                        dto.setLev(sourceLev);
-                    }))
-                    , MotionDto.build((dto -> {
-                        dto.setLiftNo(device.getId().intValue());
-                        dto.setLev(targetLev);
-                    }))
-            ));
-        }
-
-        return true;
-    }
-
-    private Integer getLiftOperaLev(String opera, Task task, String redisKey) {
-        if (opera.equals("sourceLev")) {
-            return Utils.getLev(task.getOriginLoc());
-        } else if (opera.equals("targetLev")) {
-            return Utils.getLev(task.getDestLoc());
-        } else if (opera.equals("shuttleLev")) {
-            //鍙栧嚭缂撳瓨灏忚溅
-            Object shuttleDeviceObj = redisGet(redisKey, "shuttleDevice");
-            if (shuttleDeviceObj == null) {
-                throw new CoolException("绌挎杞︾紦瀛樹负绌�");
-            }
-            Device device = JSON.parseObject(String.valueOf(shuttleDeviceObj), Device.class);
-            if (device == null) {
-                throw new CoolException("绌挎杞﹁澶囦笉瀛樺湪");
-            }
-
-            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
-            if (shuttleThread == null) {
-                throw new CoolException("绌挎杞︿笉瀛樺湪");
-            }
-
-            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
-            if (shuttleProtocol == null) {
-                throw new CoolException("绌挎杞︿笉瀛樺湪");
-            }
-
-            return Utils.getLev(shuttleProtocol.getCurrentLocNo());
-        }
-
-        throw new CoolException("绫诲瀷寮傚父");
-    }
-
-    private boolean redisSet(String redisKey, String key, Object data) {
-        if (redisUtil.hasKey(redisKey)) {
-            Object obj = redisUtil.get(redisKey);
-            JSONObject object = JSON.parseObject(String.valueOf(obj));
-            object.put(key, data);
-            redisUtil.set(redisKey, JSON.toJSONString(object));
-        } else {
-            JSONObject object = new JSONObject();
-            object.put(key, data);
-            redisUtil.set(redisKey, JSON.toJSONString(object));
-        }
-        return true;
-    }
-
-    private Object redisGet(String redisKey, String key) {
-        if (redisUtil.hasKey(redisKey)) {
-            Object obj = redisUtil.get(redisKey);
-            JSONObject object = JSON.parseObject(String.valueOf(obj));
-            if (!object.containsKey(key)) {
-                return null;
-            }
-            return object.get(key);
-        }
-        return null;
-    }
 
 //    private boolean executeFlow(List<Map<String, Object>> list) {
 //        for (Map<String, Object> map : list) {

--
Gitblit v1.9.1