From e0fbb31fcf45f56b7b57c741a6b11f03cf205512 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 12 五月 2025 15:16:51 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  201 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 201 insertions(+), 0 deletions(-)

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 7ef38e2..a374e5f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,9 +5,13 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.GenerateAgvTaskParam;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
@@ -57,11 +61,208 @@
     private CommandInfoService commandInfoService;
     @Autowired
     private ApiLogService apiLogService;
+    @Autowired
+    private OpenService openService;
+    @Autowired
+    private CommonService commonService;
     @Value("${wcs.urlWcs}")
     private String wcsUrl;
     @Value("${wcs.inboundTaskApplyPathWcs}")
     private String wcsInboundTaskApplyPath;
 
+    public synchronized void demo() {
+        boolean demoEnable = false;
+        Config demoEnableConfig = configService.selectByCode("demoEnable");
+        if(demoEnableConfig != null) {
+            demoEnable = Boolean.parseBoolean(demoEnableConfig.getValue());
+        }
+
+        if (!demoEnable) {
+            return;
+        }
+
+        //婕旂ず妯″紡-AGV鍑哄簱
+        demoAgvOut();
+        //婕旂ず妯″紡-AGV鍏ュ簱
+        demoAgvIn();
+        //婕旂ず妯″紡-鍥涘悜搴撳嚭搴�
+        demoShuttleOut();
+        //婕旂ず妯″紡-鍥涘悜搴撳叆搴�
+        demoShuttleIn();
+    }
+
+    //婕旂ず妯″紡-AGV鍑哄簱
+    private synchronized void demoAgvOut() {
+        LocMast locMast = locMastService.selectByLocNo("1100601");
+        if(locMast == null) {
+            return;
+        }
+
+        if (!locMast.getLocSts().equals("O")) {
+            return;
+        }
+
+        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                .eq("mk", "agv")
+                .eq("loc_sts", "F")
+                .notIn("loc_no", "0900601")
+        );
+
+        if (locMasts.isEmpty()) {
+            return;
+        }
+
+        LocMast originLocMast = locMasts.get(0);
+
+        //鐢熸垚AGV鍑哄簱浠诲姟
+        GenerateAgvTaskParam param = new GenerateAgvTaskParam();
+        param.setOriginPoint(originLocMast.getLocNo());
+        param.setTargetPoint(locMast.getLocNo());
+        openService.generateAgvTask(param);
+    }
+
+    //婕旂ず妯″紡-AGV鍏ュ簱
+    private synchronized void demoAgvIn() {
+        LocMast locMast = locMastService.selectByLocNo("0900601");
+        if(locMast == null) {
+            return;
+        }
+
+        if (!locMast.getLocSts().equals("F")) {
+            return;
+        }
+
+        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                .eq("mk", "agv")
+                .eq("loc_sts", "O")
+                .notIn("loc_no", "1100601")
+        );
+
+        if (locMasts.isEmpty()) {
+            return;
+        }
+
+        LocMast targetLocMast = locMasts.get(0);
+
+        //鐢熸垚AGV鍑哄簱浠诲姟
+        GenerateAgvTaskParam param = new GenerateAgvTaskParam();
+        param.setOriginPoint(locMast.getLocNo());
+        param.setTargetPoint(targetLocMast.getLocNo());
+        openService.generateAgvTask(param);
+    }
+
+    //婕旂ず妯″紡-鍥涘悜搴撳嚭搴�
+    private synchronized void demoShuttleOut() {
+        LocMast locMast = locMastService.selectByLocNo("0900601");
+        if(locMast == null) {
+            return;
+        }
+
+        if (!locMast.getLocSts().equals("O")) {
+            return;
+        }
+
+        ArrayList<Integer> disableLevList = new ArrayList<>();
+
+        //query in task
+        List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>()
+                .eq("io_type", 1));
+        for (TaskWrk taskWrk : taskWrks) {
+            int lev = Utils.getLev(taskWrk.getTargetPoint());
+            if(!disableLevList.contains(lev)) {
+                disableLevList.add(lev);
+            }
+        }
+
+        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                .notIn("lev1", disableLevList)
+                .eq("loc_sts", "F")
+        );
+
+        if(locMasts.isEmpty()) {
+            return;
+        }
+
+        LocMast locMast1 = locMasts.get(0);
+
+        Date now = new Date();
+        TaskWrk taskWrk = new TaskWrk();
+        int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
+        taskWrk.setTaskNo(String.valueOf(workNo1));//浠诲姟鍙�
+        taskWrk.setWrkNo(workNo1);
+        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
+        taskWrk.setCreateTime(now);
+        taskWrk.setIoType(1);//鍏ュ簱
+        taskWrk.setIoPri(100);//浼樺厛绾�
+        taskWrk.setOriginTargetPoint(locMast1.getLocNo());
+        taskWrk.setTargetPoint("1");//缁堢偣
+        boolean result = taskWrkService.insert(taskWrk);
+
+        locMast1.setLocSts("R");
+        locMast1.setModiTime(now);
+        locMastService.updateById(locMast1);
+
+        locMast.setLocSts("S");
+        locMast.setModiTime(now);
+        locMastService.updateById(locMast);
+    }
+
+    //婕旂ず妯″紡-鍥涘悜搴撳叆搴�
+    private synchronized void demoShuttleIn() {
+        LocMast locMast = locMastService.selectByLocNo("1100601");
+        if(locMast == null) {
+            return;
+        }
+
+        if (!locMast.getLocSts().equals("F")) {
+            return;
+        }
+
+        ArrayList<Integer> disableLevList = new ArrayList<>();
+
+        //query out task
+        List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>()
+                .eq("io_type", 2));
+        for (TaskWrk taskWrk : taskWrks) {
+            int lev = Utils.getLev(taskWrk.getTargetPoint());
+            if(!disableLevList.contains(lev)) {
+                disableLevList.add(lev);
+            }
+        }
+
+        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                .notIn("lev1", disableLevList)
+                .eq("loc_sts", "O")
+        );
+
+        if(locMasts.isEmpty()) {
+            return;
+        }
+
+        LocMast locMast1 = locMasts.get(0);
+
+        Date now = new Date();
+        TaskWrk taskWrk = new TaskWrk();
+        int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
+        taskWrk.setTaskNo(String.valueOf(workNo1));//浠诲姟鍙�
+        taskWrk.setWrkNo(workNo1);
+        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
+        taskWrk.setCreateTime(now);
+        taskWrk.setIoType(1);//鍏ュ簱
+        taskWrk.setIoPri(100);//浼樺厛绾�
+        taskWrk.setOriginTargetPoint("101");
+        taskWrk.setTargetPoint(locMast1.getLocNo());//缁堢偣
+        boolean result = taskWrkService.insert(taskWrk);
+
+        locMast1.setLocSts("S");
+        locMast1.setModiTime(now);
+        locMastService.updateById(locMast1);
+
+        locMast.setLocSts("R");
+        locMast.setModiTime(now);
+        locMastService.updateById(locMast);
+    }
+
     /**
      * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
      */

--
Gitblit v1.9.1