From 3ba44e1a566074a38779c918da391b5c6264a381 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 03 十一月 2025 18:28:58 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/entity/TaskWrk.java               |   17 +---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  127 +++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java |   16 ++++
 src/main/java/com/zy/asrs/entity/BasCrnp.java               |    2 
 src/main/java/com/zy/core/MainProcess.java                  |   40 ++++++---
 src/main/java/com/zy/core/properties/SystemProperties.java  |    2 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |    8 ++
 src/main/java/com/zy/core/model/protocol/CrnProtocol.java   |    6 +
 8 files changed, 189 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasCrnp.java b/src/main/java/com/zy/asrs/entity/BasCrnp.java
index 5db8cd9..ff211db 100644
--- a/src/main/java/com/zy/asrs/entity/BasCrnp.java
+++ b/src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -119,7 +119,7 @@
     @TableField("MODI_TIME")
     private Date modiTime;
 
-    @ApiModelProperty(value= "")
+    @ApiModelProperty(value= "婕旂ず")
     @TableField("HP_MK")
     private String hpMk;
 
diff --git a/src/main/java/com/zy/asrs/entity/TaskWrk.java b/src/main/java/com/zy/asrs/entity/TaskWrk.java
index d4eba75..4ee5736 100644
--- a/src/main/java/com/zy/asrs/entity/TaskWrk.java
+++ b/src/main/java/com/zy/asrs/entity/TaskWrk.java
@@ -72,7 +72,7 @@
     /**
      * 浠诲姟绫诲瀷
      */
-    @ApiModelProperty(value= "浠诲姟绫诲瀷")
+    @ApiModelProperty(value= "浠诲姟绫诲瀷")  // 1: 鍏ュ簱  2: 鍑哄簱  3: 绉诲簱  4:婕旂ず
     @TableField("IO_TYPE")
     private Integer ioType;
 
@@ -257,6 +257,8 @@
                 return "鎵嬪姩瀹岀粨";
             case 9:
                 return "鍑哄簱鍒拌緭閫佺嚎";
+            case 99:
+                return "婕旂ず";
             default:
                 return String.valueOf(this.status);
         }
@@ -356,17 +358,6 @@
         return Math.abs(day) + "澶�" + Math.abs(hour) + "灏忔椂" + Math.abs(min) + "鍒�" + Math.abs(s) + "绉�";
     }
 
-
-
-    public Integer getTargetPointConvert(){
-        switch (originTargetPoint){
-            case "11":
-                return 11;
-            default:
-                return null;
-        }
-    }
-
     public Integer getIoTypeWms(){
         switch (ioType){
             case 2:
@@ -375,6 +366,8 @@
                 return 2;
             case 1:
                 return 3;
+            case 4:
+                return 4;
             default:
                 return 0;
         }
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
index a4b21a8..6f8bc99 100644
--- a/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
@@ -1,5 +1,7 @@
 package com.zy.asrs.entity.param;
 
+import com.zy.asrs.entity.LocMast;
+import com.zy.core.model.CrnSlave;
 import io.swagger.models.auth.In;
 import lombok.Data;
 
@@ -92,6 +94,20 @@
         this.targetPointSta = crnSta;
     };
 
+    public TaskCreateParam(CrnSlave crnSlave, LocMast locMast){
+        this.taskNo = locMast.getLocNo() + "-" + crnSlave.getId();
+        this.ioType = 4;
+        this.barcode = locMast.getBarcode();
+        this.taskPriority = 1;
+        this.startPoint = locMast.getLocNo();
+        this.startPointSta = crnSlave.getCrnOutStn().get(0).getStaNo();
+        this.targetPoint = locMast.getLocNo();
+        this.targetPointSta = crnSlave.getCrnInStn().get(0).getStaNo();
+        this.emptyContainer = "N";
+        this.crn = locMast.getCrnNo();
+        this.memo = "婕旂ず浠诲姟";
+    };
+
 
     public static Integer convertParamIoType(String paramIoType){
         switch (paramIoType){
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 c1e8ee8..a7a1d9c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -11,6 +11,7 @@
 import com.zy.asrs.domain.enums.WorkNoType;
 import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.TaskCreateParam;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.*;
@@ -81,6 +82,8 @@
     private CrnController crnController;
     @Autowired
     private BasDevpPositionService basDevpPositionService;
+    @Autowired
+    private OpenService openService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -670,6 +673,7 @@
 
             CrnSlave crnSlave = new CrnSlave(crn);
             if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
+                CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
                 continue;
             }
 
@@ -839,6 +843,7 @@
 
             CrnSlave crn = new CrnSlave(crnSlave);
             if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
+                CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
                 continue;
             }
 
@@ -1347,6 +1352,7 @@
 
                 CrnSlave crn = new CrnSlave(crnSlave);
                 if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
+                    CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
                     continue;
                 }
 
@@ -2677,4 +2683,125 @@
     }
 
 
+
+    /**
+     * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
+     */
+    public boolean crnStnDEMOStop2() {
+        int signHpMk = 0;
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+            if (basCrnp == null) {
+                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+                continue;
+            }
+
+            if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
+                signHpMk++;
+            }
+        }
+        if (signHpMk == slaveProperties.getCrn().size()){
+            return true;
+        }
+        return false;
+    }
+
+
+
+    /**
+     * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
+     */
+    public boolean crnStnDEMOStop3() {
+        int selectCount = taskWrkService.selectCount(new EntityWrapper<TaskWrk>().eq("io_type",4));
+        if (selectCount>0) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 婕旂ず妯″紡鍚姩
+     */
+    public boolean crnStnDEMOOpen0() {
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+            if (basCrnp == null) {
+                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+                continue;
+            }
+
+            if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
+                continue;
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 婕旂ず妯″紡鍚姩
+     */
+    public boolean crnStnDEMOOpen1() {
+        int selectCount = taskWrkService.selectCount(new EntityWrapper<TaskWrk>());
+        if (selectCount>0) {
+            return false;
+        }
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+            if (basCrnp == null) {
+                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+                continue;
+            }
+
+            if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
+                CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "瀛樺湪鍏跺畠鍫嗗灈鏈哄紑鍚紨绀烘ā寮忥紒");
+                continue;
+            }
+
+            CrnSlave crnSlave = new CrnSlave(crn);
+            if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
+                CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
+                continue;
+            }
+
+            if (!crn.getId().equals(crnProtocol.getLaneNo())) {
+                for (CrnSlave crnOther : slaveProperties.getCrn()) {
+                    if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
+                        crnSlave.updateCrnInStn(crnOther);
+                    }
+                }
+            }
+            for (String locNo : crnProtocol.getLocMastDemoList()){
+                LocMast locMast = locMastService.selectByLocNo(locNo);
+                TaskCreateParam taskCreateParam = new TaskCreateParam(crnSlave,locMast);
+                openService.taskCreate(taskCreateParam);
+            }
+
+            return true;
+        }
+        return false;
+    }
+
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 2fca288..896621a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -143,6 +143,14 @@
                 taskWrk.setOriginStartPoint("0");
                 taskWrk.setOriginTargetPoint("0");
             }
+        }else if (param.getIoType() == 4){
+            taskWrk.setWrkSts(11);
+            if (!Cools.isEmpty(param.getStartPoint())) {
+                taskWrk.setStartPoint(param.getStartPoint());//璧风偣
+                taskWrk.setTargetPoint(param.getTargetPoint());//缁堢偣
+                taskWrk.setOriginStartPoint(param.getStartPointSta().toString());
+                taskWrk.setOriginTargetPoint(param.getTargetPointSta().toString());
+            }
         }
 
 
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index ec52590..aa10235 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -134,24 +134,34 @@
                 // 绯荤粺婕旂ず妯″紡杩愯鐘舵�佸彉鍖�
                 if (SystemProperties.WCS_RUNNING_STATUS_DEMO.get()) {
                     if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 2){
-
+                        boolean signHpMk = mainService.crnStnDEMOStop2();
+                        if (signHpMk){
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 3;
+                        }
                     } else if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 3){
-
-                    } else if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 0){
-
-                    } else if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 1){
-
+                        boolean signHpMk = mainService.crnStnDEMOStop3();
+                        if (signHpMk){
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO.set(false);
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 0;
+                        }
                     }
                 } else {
-                    if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 0){
-
-                    } else if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 1){
-
-                    } else if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 2){
-
-                    } else if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 3){
-
-                    }
+                     if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 1){
+                        boolean signHpMk = mainService.crnStnDEMOOpen1();
+                        if (signHpMk){
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO.set(true);
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 2;
+                        } else {
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 0;
+                        }
+                    } else {
+                         boolean signHpMk = mainService.crnStnDEMOOpen0();
+                         if (signHpMk){
+                             SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 1;
+                         } else {
+                             SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 0;
+                         }
+                     }
                 }
                 // 鍏朵粬  ===>> LED鏄剧ず鍣ㄦ樉绀烘椂闂�
             } catch (Exception e) {
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index 1def4c8..9258620 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -7,6 +7,8 @@
 import com.zy.core.enums.CrnStatusType;
 import lombok.Data;
 
+import java.util.ArrayList;
+
 /**
  * Created by vincent on 2020/8/7
  */
@@ -199,6 +201,10 @@
     public Float yDuration;
     public String errCrn;
 
+
+    public String locMastDemoCount;//娴嬭瘯搴撲綅鏁伴噺
+    public ArrayList<String> locMastDemoList;//娴嬭瘯搴撲綅鍒楄〃
+
     public void setMode(Short mode) {
         this.mode = mode;
         this.modeType = CrnModeType.get(mode);
diff --git a/src/main/java/com/zy/core/properties/SystemProperties.java b/src/main/java/com/zy/core/properties/SystemProperties.java
index d85024f..493e0dd 100644
--- a/src/main/java/com/zy/core/properties/SystemProperties.java
+++ b/src/main/java/com/zy/core/properties/SystemProperties.java
@@ -12,7 +12,7 @@
     // 绯荤粺杩愯鐘舵��
     public static final AtomicBoolean WCS_RUNNING_STATUS = new AtomicBoolean(Boolean.TRUE);
     public static final AtomicBoolean WCS_RUNNING_STATUS_DEMO = new AtomicBoolean(Boolean.TRUE);
-    public static final Integer WCS_RUNNING_STATUS_DEMO_VALUE = 3; // 0: 鍋滄锛�1锛氳繍琛屽惎鍔ㄤ腑 2锛氳繍琛屼腑 3锛氬仠姝腑
+    public static Integer WCS_RUNNING_STATUS_DEMO_VALUE = 3; // 0: 鍋滄锛�1锛氳繍琛屽惎鍔ㄤ腑 2锛氳繍琛屼腑 3锛氬仠姝腑
 
     public static final String WMS_URL = "localhost";
 

--
Gitblit v1.9.1