From 1053f15fecff14e486b734d83426fe6f26f9b7cf Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期一, 20 五月 2024 16:21:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java            |  113 +++++++++++++++++++++-
 src/main/java/com/zy/asrs/task/BareBoardScheduler.java                  |   92 +++++++++++-------
 src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java |   27 +++++
 src/main/resources/application.yml                                      |   13 ++
 4 files changed, 201 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
index 1ed97c3..65c7de9 100644
--- a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
+++ b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java
@@ -6,6 +6,7 @@
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.handler.BareBoardHandler;
 import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.common.properties.SlaveWmsParameterProperties;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,49 +35,66 @@
     private RgvOneSignService rgvOneSignService;
     @Autowired
     private WrkMastStaService wrkMastStaService;
+    @Autowired
+    private SlaveWmsParameterProperties slaveWmsParameterProperties;
 
 //    @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){//鑷姩璋冪┖鏉垮嚭搴� 2妤肩爜鍨涗綅缃�
-        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
-        if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
-            BasDevp basDevp = basDevpService.selectById(213);
-            if (!Cools.isEmpty(basDevp) && basDevp.getWrkNo()==0 && basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N")){
-                bareBoardHandler.start(213);
-            }
-        }
-    }
+//    private void execute(){//鑷姩璋冪┖鏉垮嚭搴� 2妤肩爜鍨涗綅缃�
+//        if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
+//            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
+//            if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
+//                BasDevp basDevp = basDevpService.selectById(213);
+//                if (!Cools.isEmpty(basDevp) && basDevp.getWrkNo()==0 && basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N")){
+//                    bareBoardHandler.start(213);
+//                }
+//            }
+//        }
+//    }
 
 //    @Scheduled(cron = "0/3 * * * * ? ")
-    private void executeOne(){//鑷姩璋冪┖鏉垮嚭搴� 1妤肩爜鍨涗綅缃�
-        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
-        if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
-            boolean sign = true;
-            WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
-                    .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 2));
-            WrkMastSta wrkMastSta2 = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
-                    .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 1));
-            if (Cools.isEmpty(wrkMastSta) || !Cools.isEmpty(wrkMastSta2)){
-                sign=false;
-            }
-            RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
-            if (rgvOneSign.getRgvOneSign()!=1 || !sign){
-                sign = false;
-            }else {
-                List<BasRgv> basRgvs = basRgvService.selectList(new EntityWrapper<BasRgv>());
-                for (BasRgv basRgv : basRgvs){
-                    if (basRgv.getLoaded2()!=0 && basRgv.getRgvSts()==3){
-                        sign = false;
-                        break;
-                    }
+//    private void executeOne() {//鑷姩璋冪┖鏉垮嚭搴� 1妤肩爜鍨涗綅缃�
+//        if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
+//            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard"));
+//            if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
+//                boolean sign = true;
+//                WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
+//                        .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 2));
+//                WrkMastSta wrkMastSta2 = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
+//                        .eq("type", 2).eq("wrk_sts", 0).eq("wrk_type", 1));
+//                if (Cools.isEmpty(wrkMastSta) || !Cools.isEmpty(wrkMastSta2)){
+//                    sign=false;
+//                }
+//                RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
+//                if (rgvOneSign.getRgvOneSign()!=1 || !sign){
+//                    sign = false;
+//                }else {
+//                    List<BasRgv> basRgvs = basRgvService.selectList(new EntityWrapper<BasRgv>());
+//                    for (BasRgv basRgv : basRgvs){
+//                        if (basRgv.getLoaded2()!=0 && basRgv.getRgvSts()==3){
+//                            sign = false;
+//                            break;
+//                        }
+//                    }
+//                }
+//
+//                if (sign){
+//                    bareBoardHandler.start(122);
+//                }
+////            }
+//            }
+//        }
+//    }
+
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private void execute(){//鑷姩璋冪┖鏉垮嚭搴� 鐓滄槦浜屾ゼ灏忔枡绠�  172
+        if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){
+            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard172"));
+            if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){
+                int loadIngCount = basDevpService.selectCount(new EntityWrapper<BasDevp>().ge("dev_no", 160).le("dev_no", 172).eq("loading", "Y"));
+                if (loadIngCount<=10){
+                    bareBoardHandler.startYx(172);
                 }
             }
-
-            if (sign){
-                bareBoardHandler.start(122);
-            }
-//            BasDevp basDevp = basDevpService.selectById(213);
-//            if (!Cools.isEmpty(basDevp) && basDevp.getWrkNo()==0 && basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N")){
-//            }
         }
     }
 
diff --git a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
index 4b9c022..1b64e5e 100644
--- a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java
@@ -8,12 +8,11 @@
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.StaDesc;
 import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.StaDescService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.entity.param.EmptyPlateOutParam;
+import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
 import lombok.extern.slf4j.Slf4j;
@@ -44,8 +43,10 @@
     private StaDescService staDescService;
     @Autowired
     private BasCrnpService basCrnpService;
+    @Autowired
+    private WorkService workService;
 
-    public ReturnT<String> start(Integer staNo) {
+    public ReturnT<String>  start(Integer staNo) {
         try {
             if (!Cools.isEmpty(wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo)))){
                 return null;
@@ -143,4 +144,106 @@
         }
         return SUCCESS;
     }
+
+    public ReturnT<String>  startYx(Integer staNo) {
+        try {
+//            if (!Cools.isEmpty(wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo)))){
+//                return null;
+//            }
+            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", staNo));
+            if (wrkCount>10){
+                return null;
+            }
+            ArrayList<Integer> crns =new ArrayList<>();
+            crns.add(1);
+            crns.add(2);
+            boolean sign = true;
+            for (Integer crnNo : crns){
+                List<String> locNoList = new ArrayList<>();
+
+                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+                if (basCrnp.getCrnSts()!=3 || !basCrnp.getOutEnable().equals("Y")){
+                    continue;
+                }
+                sign = true;
+                // 鑾峰彇搴撲綅
+                LocMast locMastS = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",crnNo));
+
+                if (Cools.isEmpty(locMastS)) {
+//                    throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒");
+                    log.error(crnNo+"鍙峰爢鍨涙満鏃犵┖鏉匡紒");
+                    sign=false;
+                }
+                if (sign && !locMastS.getLocSts().equals("D")){
+//                    throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+                    log.error(crnNo+"鍙峰爢鍨涙満"+"鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMastS.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMastS.getLocSts()+"-"+locMastS.getLocSts$());
+                    sign=false;
+                }
+                locNoList.add(locMastS.getLocNo());
+
+                //灏忔枡绠变即鐢熷嚭搴�
+                if (Utils.getRow(locMastS.getLocNo())<=8){
+                    String locNoOther = staNoOther(locMastS.getLocNo());
+                    LocMast locMastOther = locMastService.selectById(locNoOther);
+                    if (locMastOther.getLocSts().equals("D")){
+                        locNoList.add(locNoOther);
+                    }
+                }
+                if (sign) {
+                    EmptyPlateOutParam param = new EmptyPlateOutParam();
+                    param.setOutSite(172);
+                    param.setLocNos(locNoList);
+                    try{
+                        workService.emptyPlateOut(param, 9999L);
+                    }catch (Exception e){
+                        log.error("浜屾ゼ灏忔枡绠辫嚜鍔ㄨˉ绌烘澘澶辫触锛侊紒寮傚父鍘熷洜锛�"+e);
+                    }
+                    return SUCCESS;
+                }
+            }
+            if (!sign){
+                log.error("鏈煡鍒板彲鍑哄簱鐨勭┖鏉匡紒锛侊紒");
+                return null;
+            }
+        }catch (Exception e){
+            log.error("寮傚父锛侊紒锛�"+e);
+            return null;
+        }
+        return SUCCESS;
+    }
+
+    public String staNoOther(String locNo){
+        int row = Utils.getRow(locNo);
+        if (row%4==0 || row%4==1){
+            return getDeepLoc2(locNo,row);
+        }else {
+            return getDeepLoc(locNo,row);
+        }
+    }
+
+    /**
+     * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿
+     */
+    public static String getDeepLoc2(String shallowLoc,int row) {
+        if (row == 1 || row == 5) {
+            return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+        } else if (row == 4 || row == 8) {
+            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+        }else {
+            return null;
+        }
+    }
+
+    /**
+     * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿
+     */
+    public static String getDeepLoc(String shallowLoc,int row) {
+        if (row == 2 || row == 6) {
+            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+        } else if (row == 3 || row == 7) {
+            return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+        }else {
+            return shallowLoc;
+        }
+    }
 }
diff --git a/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java b/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java
new file mode 100644
index 0000000..01a8d60
--- /dev/null
+++ b/src/main/java/com/zy/common/properties/SlaveWmsParameterProperties.java
@@ -0,0 +1,27 @@
+package com.zy.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2023/10/25
+ */
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "wms-parameter")
+public class SlaveWmsParameterProperties {
+
+    // 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
+    private boolean automaticFillingBoardStaNosBoolean;
+    // 鑷姩绉诲簱鍔熻兘寮�鍏�
+    private boolean autoLocMoveBoolean;
+    // 鑷姩绉诲簱鍔熻兘寮�鍏� 111
+    private boolean autoLocMoveUnilateralBoolean;
+    // 鑷姩琛ョ┖鏉跨珯鐐�
+    private List<Integer> automaticFillingBoardStaNos = new ArrayList<>();
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 8dd08d5..b0405ec 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,7 +10,7 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=ahyxasrs
+    url: jdbc:sqlserver://10.10.10.254:1433;databasename=ahyxasrs
     username: sa
     password: sa@123
   mvc:
@@ -61,7 +61,16 @@
   doubleLocsLeft : 1,5,9,13,17,21
   # 鍙虫繁搴撲綅鎺掑彿
   doubleLocsRight : 4,8,12,16,20,24
-
+# wms鍙傛暟閰嶇疆
+wms-parameter:
+  # 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
+  automaticFillingBoardStaNosBoolean: true
+  # 鑷姩琛ョ┖鏉跨珯鐐�
+  automaticFillingBoardStaNos: 112,101
+  # 鑷姩绉诲簱鍔熻兘寮�鍏�
+  autoLocMoveBoolean: false
+  # 鑷姩绉诲簱鍔熻兘寮�鍏� 绌挎
+  autoLocMoveUnilateralBoolean: false
 
 comb:
   limit: 5000

--
Gitblit v1.9.1