From a2c10587b4621e1bf9ef928dc043cf71ad84bbcf Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期二, 18 四月 2023 09:30:18 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/BarcodeThread.java            |    6 ++
 src/main/java/com/zy/asrs/service/WrkMastService.java          |    2 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   59 +++++++++++++++++++++++------
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java |    6 +++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java            |    5 ++
 src/main/resources/mapper/WrkMastMapper.xml                    |    3 +
 6 files changed, 67 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 87c2dcb..90bba5e 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -114,5 +114,8 @@
 
     WrkMast selectPakoutEmpty(@Param("staNo")Integer outSite);
 
-
+    /**
+     * 鏌ヨ鏄惁鏄洏鐐瑰嚭搴擄紝妫�鏂欏嚭搴�
+     */
+    WrkMast selectpj(@Param("staNo")Integer staNo,@Param("barcode")String barcode);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index 67469f8..bd2be23 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.WrkMast;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -15,4 +16,5 @@
 
     int getOutToStn182(Integer devpNo);
 
+    WrkMast selectpj(Integer staNo,String barcode);
 }
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 0ee1274..0bf23b6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -102,29 +102,58 @@
             for (DevpSlave.Sta inSta : devp.getInSta()) {
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
-
+                BarcodeThread barcodeThread1 = null;
+                BarcodeThread barcodeThread2 = null;
                 if (barcodeThread == null) {
                     continue;
                 }
                 String barcode = barcodeThread.getBarcode();
-
+                String barcode1 = "";
+                String barcode2 = "";
 
                 //101绔欐湁3涓壂鐮佸櫒锛屽綋0鎵爜鍣ㄦ病鏈夋暟鎹椂锛岃幏鍙�9銆�10涓や釜鎵爜鍣ㄦ暟鎹�
-                if((inSta.getStaNo().equals(101) || inSta.getStaNo().equals(104)) && ( "NoRead".equals(barcode) || Cools.isEmpty(barcode) )){
-                    BarcodeThread barcodeThread1 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode1());
+                if((inSta.getStaNo().equals(101) || inSta.getStaNo().equals(104))){
+                    barcodeThread1 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode1());
                     if (barcodeThread1 != null) {
-                        barcode = barcodeThread1.getBarcode();
+                        barcode1 = barcodeThread1.getBarcode();
                     }
 
-                    if("NoRead".equals(barcode) || Cools.isEmpty(barcode)) {
-                        BarcodeThread barcodeThread2 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode2());
-                        if (barcodeThread2 != null) {
-                            barcode = barcodeThread2.getBarcode();
+                    barcodeThread2 = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode2());
+                    if (barcodeThread2 != null) {
+                        barcode2 = barcodeThread2.getBarcode();
 
-                        }
                     }
+
+                    Integer len1=0 , len2=0, len3=0;
+                    if(barcode != null) {
+                        String b[]=barcode.split(";");
+                        barcode=b[b.length-1];
+                        len1 = barcode.length();
+                    }
+                    if(barcode1 != null) {
+                        String b[]=barcode1.split(";");
+                        barcode1=b[b.length-1];
+                        len2 = barcode1.length();
+                    }
+                    if(barcode2 != null) {
+                        String b[]=barcode2.split(";");
+                        barcode2=b[b.length-1];
+                        len3 = barcode2.length();
+                    }
+
+                    if(len2 > len1 && len2 >= len3){
+                        barcode = barcode1;
+                    } else if (len3 > len1 && len3 >= len2){
+                        barcode = barcode2;
+                    }
+
                 }
-
+                    //鍒ゆ柇101鍜�104鏄惁鏄嫞鏂欍�佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
+                    WrkMast wrkMast1=wrkMastMapper.selectpj(inSta.getStaNo(),barcode);
+                    if((inSta.getStaNo().equals(101) || inSta.getStaNo().equals(104)) &&!Cools.isEmpty(barcode)&&!Cools.isEmpty(wrkMast1)){
+                        log.error("101鎴�104鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱", wrkMast1.getWrkNo());
+                        continue;
+                    }
 
                 if (!Cools.isEmpty(barcode)) {
                     log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
@@ -224,7 +253,7 @@
                         param.setFull(staProtocol.isFull());
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/loc/v1")
+                                .setPath("/rpc/ ")
                                 .setJson(JSON.toJSONString(param))
                                 .build()
                                 .doPost();
@@ -235,6 +264,12 @@
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
                             barcodeThread.setBarcode("");
+                            if(barcodeThread1 !=null){
+                                barcodeThread1.setBarcode("");
+                            }
+                            if(barcodeThread2 !=null){
+                                barcodeThread2.setBarcode("");
+                            }
                             staProtocol.setWorkNo(dto.getWorkNo().shortValue());
                             staProtocol.setStaNo(dto.getStaNo().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index 8c0b9e9..d5b6da9 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -31,4 +31,10 @@
     public int getOutToStn182(Integer devpNo) {
         return selectCount(new EntityWrapper<WrkMast>().eq("sta_no", devpNo).in("wrk_sts",11,12));
     }
+
+    @Override
+    public WrkMast selectpj(Integer staNo, String barcode) {
+        return this.baseMapper.selectpj(staNo,barcode);
+    }
+
 }
diff --git a/src/main/java/com/zy/core/thread/BarcodeThread.java b/src/main/java/com/zy/core/thread/BarcodeThread.java
index d0b775e..2bca652 100644
--- a/src/main/java/com/zy/core/thread/BarcodeThread.java
+++ b/src/main/java/com/zy/core/thread/BarcodeThread.java
@@ -65,7 +65,7 @@
         connect();
         while (true) {
             try {
-                byte[] read = read(16, 200);
+                byte[] read = read(50, 200);
                 if (null != read) {
                     String s = new String(read);
                     if (!Cools.isEmpty(s)) {
@@ -79,10 +79,14 @@
                         }
                         OutputQueue.BARCODE.offer(jsonObject);
                     }
+                }else{
+                    barcode = "";
                 }
                 Thread.sleep(50);
             } catch (SocketTimeoutException ignore) {
+//                barcode="";
             } catch (Exception e) {
+                barcode="";
 //                e.printStackTrace();
             }
         }
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index b920bb5..187e23f 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -192,4 +192,7 @@
     <select id="selectPakoutEmpty" resultMap="BaseResultMap">
         select top 1 * from dbo.asr_wrk_mast where  io_type = 110 and sta_no = #{staNo} order by io_time,wrk_no
     </select>
+    <select id="selectpj" resultMap="BaseResultMap">
+        select * from dbo.asr_wrk_mast where sta_no=#{staNo} and wrk_sts =14 and barcode=#{barcode}
+    </select>
 </mapper>

--
Gitblit v1.9.1