From 28ded8102d83cf74bc232d1cdfc89b7f22c41952 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 03 十二月 2024 09:09:31 +0800
Subject: [PATCH] 增加点击防抖事件 增加笼子使用详情的计算优化。 增加数据推送时的报错处理 测量台交互逻辑增加 参数界面增加翻转加减速度

---
 springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java |  289 ++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 183 insertions(+), 106 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
index f2a2366..5da2a94 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
@@ -9,6 +9,7 @@
 import com.example.springboot.component.S7control;
 import com.example.springboot.entity.GlassInfo;
 import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.StorageTask;
 import com.example.springboot.entity.device.PlcParameterObject;
 import com.example.springboot.mapper.AlbaniaMapper;
 import com.google.common.primitives.Bytes;
@@ -48,17 +49,21 @@
 
         } else {
             // 鍒ゆ柇鐜荤拑鏄惁杩涘叆澶х墖绗�
-            if (glassInfo.getThickness() >= 15) {
+            if (glassInfo.getThickness() > 14) {
                 cage = albaniaMapper.SelectNewCell(3, 5);
             } else {
                 cage = albaniaMapper.SelectNewCell(0, 4);
 
                 // System.out.println(cage + "鐞嗙墖绗煎垽鏂�");
             }
+            // 褰撳皬鐗囩瀛愪笉澶燂紝鍒欑鍚堟潯浠剁殑鍙互杩涘叆澶х墖绗�
+            if (cage == null && glassInfo.getWidth() >= 1500 && glassInfo.getThickness() > 4) {
+                cage = albaniaMapper.SelectNewCell(3, 5);
+            }
             // 褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧
             if (cage != null) {
                 albaniaMapper.AddCage(cage.getId(), glassid, width, height, 1, glasstype, 0, thickness,
-                        glassfilms.getFilms(),glassfilms.getFlowcard(),glassfilms.getMateid());
+                        glassfilms.getFilms(), glassfilms.getFlowcard(), glassfilms.getMateid(), glassfilms.getTier());
                 Mestast(glassid, 1001, cage.getId(), 1, "MESID1", 1);
                 System.out.println("浠诲姟鍙戦�佺幓鐠僫d:" + glassid + "璧峰浣嶇疆:" + 1001 + "鏍煎瓙鍙�:" + cage.getId() + "鍚姩:" + 1);
                 albaniaMapper.UpdateStorage(width, height, cage.getId());
@@ -67,17 +72,67 @@
             }
         }
         // 澧炲姞浠诲姟璁板綍
-        albaniaMapper.Inserttask(0, 0, 1001, cage.getId(), glassid, glasstype, flowcard, glassfilms.getMateid(), 0);
+        albaniaMapper.Inserttask(0, 0, 1001, cage.getId(), glassid, glasstype, flowcard, glassfilms.getMateid(),
+                glassfilms.getTier());
         albaniaMapper.UpdateQueueState(glassid);
         return (200);
 
     }
-    //琛ュ厖鍑虹墖
+
+    // 琛ュ厖鍑虹墖
     public Short mateOut() {
         double carwidth = -300;
-        list<StorageTask> glassmate = albaniaMapper.SelectMateOut();
+
+        List<StorageTask> glassmate = albaniaMapper.SelectOutTask();
+        String type = glassmate.get(0).getTaskType();
+        if (glassmate.size() == 0) {
+            return (400);
+        } else {
+            for (int i = 0; i < glassmate.size(); i++) {
+                GlassInfo glass = albaniaMapper.SelectGlassInfo(glassmate.get(i).getGlasstype());
+                carwidth = carwidth + glass.getWidth() + 300;
+                if (carwidth >= 4300 && type != glassmate.get(i).getTaskType()) {
+                    S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+                    MestoPlc();
+                    return (200);
+                } else {
+                    // 澧炲姞涓�鏉′换鍔¤褰�
+                    albaniaMapper.Inserttask(1, 0, Integer.parseInt(glassmate.get(i).getShelfRack()), 2001,
+                            glassmate.get(i).getGlassId(), glassmate.get(i).getGlasstype(),
+                            glassmate.get(i).getFlowcard(), glassmate.get(i).getMateid(), glassmate.get(i).geTier());
+                    // 瀹屾垚鍑虹墖闃熷垪鐨勪换鍔�
+                    albaniaMapper.UpdateOutTask(glassmate.get(i).getId());
+                    // 鍙戦�乸lc浠诲姟
+                    Mestast(glassmate.get(i).getGlassId(),
+                            Integer.parseInt(glassmate.get(i).getShelfRack()), 2001, 0, "MESID" + (i + 1), i + 1);
+                    System.out.println("鍙戦�佸嚭鐗囬槦鍒楅厤鐗囦换鍔�:" + glassmate.get(i).getShelfRack());
+                }
+            }
+            // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+            // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),
+            // (short) 1);// 鍑虹墖浠诲姟鍚姩
+            while (true) {
+                String currentValue = plcmes.getPlcParameter("MESToPLC").getValue();
+                // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0
+                if (currentValue.equals("1")) {
+                    System.out.println("鍙戦�佸惎鍔ㄥ瓧鐜板湪涓�1,鍋滄寰幆鍐欏叆");
+                    break; // 閫�鍑哄惊鐜�
+                }
+                // 濡傛灉涓嶄负 1锛岀户缁啓鍏�
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 浠诲姟鍙戦�佸瓧
+                System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue);
+                try {
+                    Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆�
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+            }
+            MestoPlc();
+
+        }
         return (200);
     }
+
     // 鍑虹墖
     public Short selectout(int line) {
         GlassInfo glassmate = new GlassInfo();
@@ -85,112 +140,120 @@
         StorageCage glass = new StorageCage();
         int glassend = 0;
         double carwidth = -300;
+        double width = 0;
+
         method = albaniaMapper.SelectMethod(line);
         if (method == null) {
             return (400);
         }
-        double width = 0;
-        for (int i = 1; i <= 7; i++) {
-            // 濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱
-            if (method.getMethod() == 0) {
-                // glassmate= albaniaMapper.SelectOutGlass(1);
-                //鍒ゆ柇鏈夋暟閲忕殑閰嶇墖id
-                List<GlassInfo> peipianid = albaniaMapper.SelectOutGlass3(method.getFlowcard());
-                if (peipianid.size() == 0) {
-                    System.out.println("peipianid:"+peipianid);
-                    return (400);
-                } else {
-                    for (int j = 0; j < peipianid.size(); j++) {
-                        // 鍒ゆ柇閰嶇墖瀹藉害鏄惁澶熶笂澶ц溅
-                        // GlassInfo glasswidth = albaniaMapper.SelectOutGlass6(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
-                        // if (glasswidth.getWidth() <= 4300) {
-                            //鏄惁鏈夎冻澶熺殑搴撳瓨鏁伴噺
-                            List<String> peipiancage = albaniaMapper.SelectOutGlass4(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());                              
-                            //鏄惁鏈夎冻澶熺殑鍙嚭鐗囨暟閲�
-                            List<String> peipiancage2 = albaniaMapper.SelectOutGlass8(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid()); 
-                            // System.out.println("peipiancage:"+peipiancage+peipianid.get(j).getMateid()); 
-                            // System.out.println("peipiancage2:"+peipiancage2);                                     
-                            if (!peipiancage.contains("涓嶈冻")&&!peipiancage2.contains("涓嶈冻")) {
-                                List<GlassInfo> chupian = albaniaMapper.SelectOutGlass7(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
-                                for (int k = 0; k < chupian.size(); k++) {
-                                      glass = albaniaMapper.SelectCageGlass(chupian.get(k).getGlasstype());
-                                      carwidth= carwidth+glass.getGlassWidth()+300;
-                                      if (carwidth<=4300) {
-                                          // 鍙戦�侀厤鐗囨暟鎹�
-                                    //   Mestast(chupian.get(k).getGlassid(), glass.getId(), 2001, 0, "MESID" + (k+1), k+1);                                    
-                                      albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
-                                      storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
-                                      albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
-                                      chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
-                                      }else {
-                                        albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
-                                        storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
-                                        albaniaMapper.InsertOutTask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
-                                        chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
-                                      }
-                                    
-                                }
-                                // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
-                                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
-                                return (200);// 缁撴潫
-                            }
-                        // }
-                        //  else {
-                        //     continue;
-                        // }
-                    }
-                    System.out.println("鏈湁瀹屾暣閰嶇墖");
-                    return (400);
-                }
-
-            } else {
-                // 鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑�
-                glassmate= albaniaMapper.SelectOutGlass(1);
-                // glassmate = albaniaMapper.SelectOutGlass2(1);
-                // // 鑾峰彇鐩撮�氭ā寮忔渶鍚庝竴鍧�
-                // glassend = albaniaMapper.SelectOutGlassend(1);
-           
-            }
-            System.err.println("鍑虹墖:" + glassmate);
-            if (glassmate == null && i > 1) {
-                // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
-                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
-                System.out.println("鍑哄畬浠诲姟:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001");
-                return (200);// 缁撴潫
-            }
-            if (glassmate == null) {
-                // 鏈鍙栦换鍔�
-                System.out.println("鏈鍙栦换鍔�:" + i);
+        // 濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱
+        if (method.getMethod() == 0) {
+            // glassmate= albaniaMapper.SelectOutGlass(1);
+            // 鍒ゆ柇鏈夋暟閲忕殑閰嶇墖id
+            List<GlassInfo> peipianid = albaniaMapper.SelectOutGlass3(method.getFlowcard());
+            if (peipianid.size() == 0) {
+                System.out.println("peipianid:" + peipianid);
                 return (400);
             } else {
-                glass = albaniaMapper.SelectCageGlass(glassmate.getGlasstype());
-                System.out.println("glassmate:" + glassmate  + "glass:" + glass);
-                if (glass != null) {
-                    // 鍙戦�佷换鍔′箣鍓嶅垽鏂溅涓婄殑鍓╀綑瀹藉害鏄惁澶т簬姝ょ幓鐠�
-                    width = width + glassmate.getWidth() + 300;
-                    // 澶т簬杞︿笂绌轰綑瀹藉害鏃舵彁鍓嶅彂閫佸嚭鐗囧惎鍔�
-                    if (width > 4300) {
+                for (int j = 0; j < peipianid.size(); j++) {
+                    // 鍒ゆ柇閰嶇墖瀹藉害鏄惁澶熶笂澶ц溅
+                    // GlassInfo glasswidth =
+                    // albaniaMapper.SelectOutGlass6(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
+                    // if (glasswidth.getWidth() <= 4300) {
+                    // 鏄惁鏈夎冻澶熺殑搴撳瓨鏁伴噺
+                    List<String> peipiancage = albaniaMapper.SelectOutGlass4(peipianid.get(j).getFlowcard(),
+                            peipianid.get(j).getMateid());
+                    // 鏄惁鏈夎冻澶熺殑鍙嚭鐗囨暟閲�
+                    List<String> peipiancage2 = albaniaMapper.SelectOutGlass8(peipianid.get(j).getFlowcard(),
+                            peipianid.get(j).getMateid());
+                    // System.out.println("peipiancage:"+peipiancage+peipianid.get(j).getMateid());
+                    // System.out.println("peipiancage2:"+peipiancage2);
+                    if (!peipiancage.contains("涓嶈冻")) {
+                        List<GlassInfo> chupian = albaniaMapper.SelectOutGlass7(peipianid.get(j).getFlowcard(),
+                                peipianid.get(j).getMateid());
+                        for (int k = 0; k < chupian.size(); k++) {
+                            glass = albaniaMapper.SelectCageGlass(chupian.get(k).getGlasstype());
+                            carwidth = carwidth + glass.getGlassWidth() + 300;
+                            if (carwidth <= 4300) {
+                                // 鍙戦�侀厤鐗囨暟鎹�
+                                Mestast(chupian.get(k).getGlassid(), glass.getId(), 2001, 0, "MESID" + (k + 1),
+                                        k + 1);
+                                albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(),
+                                        chupian.get(k).getMateid(), chupian.get(k).getTier());
+                                storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
+                                albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
+                                        chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(),
+                                        chupian.get(k).getMateid(), chupian.get(k).getTier());
+                            } else {
+                                albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(),
+                                        chupian.get(k).getMateid(), chupian.get(k).getTier());
+                                storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
+                                // 澧炲姞鍑虹墖闃熷垪鐨勪换鍔�
+                                albaniaMapper.InsertOutTask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
+                                        chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(),
+                                        chupian.get(k).getMateid(), chupian.get(k).getTier());
+                            }
+
+                        }
                         // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
-                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+                        // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),(short)
+                        // 1);// 鍑虹墖浠诲姟鍚姩
+                        MestoPlc();
                         return (200);// 缁撴潫
                     }
-                    // 鍙戦�侀厤鐗囨暟鎹�
-                    Mestast(glass.getGlassId(), glass.getId(), 2001, 0, "MESID" + i, i);
-                    albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(), glassmate.getTier());
-                    storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
-                    albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, glassmate.getGlassid(),
-                    glassmate.getGlasstype(), glass.getFlowcard(), glassmate.getMateid(), glassmate.getTier());
-                    // if (glassmate.getTier() == glassmate.getId() || glassmate.getTier() == glassend|| method.getMethod() == 1) {// 褰撻厤鐗囨暟閲忕瓑浜庢垚鍝佸皬鐗囨�荤墖鏁版椂
-                    //     // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
-                    //     S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
-                    //     System.out.println("浠诲姟绫诲瀷:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001");
-                    //     return (200);// 缁撴潫
                     // }
+                    // else {
+                    // continue;
+                    // }
+                }
+                System.out.println("鏈湁瀹屾暣閰嶇墖");
+                return (400);
+            }
+
+        } else {
+            for (int i = 1; i <= 7; i++) {
+                // 鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑�
+                // glassmate = albaniaMapper.SelectOutGlass(1);
+                glassmate = albaniaMapper.SelectOutGlass2();
+
+                System.err.println("鍑虹墖:" + glassmate);
+                if (glassmate == null && i > 1) {
+                    // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+                    // 鍑虹墖浠诲姟鍚姩
+                    MestoPlc();
+                    System.out.println("鍑哄畬浠诲姟:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001");
+                    return (200);// 缁撴潫
+                }
+                if (glassmate == null) {
+                    // 鏈鍙栦换鍔�
+                    System.out.println("鏈鍙栦换鍔�:" + i);
+                    return (400);
 
                 } else {
-                    return (400);// 缁撴潫
-                }
+                    glass = albaniaMapper.SelectCageGlass(glassmate.getGlasstype());
+                    System.out.println("鍑虹墖glass:" + glass);
+                    if (glass != null) {
+                        // 鍙戦�佷换鍔′箣鍓嶅垽鏂溅涓婄殑鍓╀綑瀹藉害鏄惁澶т簬姝ょ幓鐠�
+                        width = width + glassmate.getWidth() + 300;
+                        // 澶т簬杞︿笂绌轰綑瀹藉害鏃舵彁鍓嶅彂閫佸嚭鐗囧惎鍔�
+                        if (width > 4300) {
+                            // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+                            MestoPlc();
+                            return (200);// 缁撴潫
+                        }
+                        // 鍙戦�侀厤鐗囨暟鎹�
+                        Mestast(glass.getGlassId(), glass.getId(), 2001, 0, "MESID" + i, i);
+                        albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(),
+                                glassmate.getTier());
+                        storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
+                        albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, glassmate.getGlassid(),
+                                glassmate.getGlasstype(), glass.getFlowcard(), glassmate.getMateid(),
+                                glassmate.getTier());
+                    } else {
+                        return (400);// 缁撴潫
+                    }
 
+                }
             }
         }
         return (200);// 缁撴潫
@@ -248,20 +311,15 @@
 
     // 涓嬪彂鐞嗙墖浠诲姟
     public void Mestast(String glassid, int MESToPLCStart1, int MESToPLCTarget1, int MESToPLC, String address, int i) {
-        // System.out.println("涓嬪彂鐞嗙墖浠诲姟鏁版嵁锛�");
-        // System.out.println("鐜荤拑 ID: " + glassid);
-        // System.out.println("璧峰浣嶇疆: " + MESToPLCStart1);
-        // System.out.println("鐩爣浣嶇疆: " + MESToPLCTarget1);
-        // System.out.println("浠诲姟绫诲瀷: " + MESToPLC);
-        // System.out.println("鍦板潃: " + address);
-        // System.out.println("绱㈠紩: " + i);
         S7control.getinstance().writeString(plcmes.getPlcParameter(address).getAddress(), glassid);// 鐜荤拑id
         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(),
                 (short) MESToPLCStart1);// 璧峰浣嶇疆
         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(),
                 (short) MESToPLCTarget1);// 鐩爣浣嶇疆
         if (MESToPLC != 0) {
-            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) MESToPLC);// mes鐞嗙墖浠诲姟绫诲瀷
+            // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),
+            // (short) MESToPLC);// mes鐞嗙墖浠诲姟绫诲瀷
+            MestoPlc();
         }
     }
 
@@ -272,4 +330,23 @@
         return listbool;
     }
 
+    public void MestoPlc() {
+        while (true) {
+            String currentValue = plcmes.getPlcParameter("MESToPLC").getValue();
+            // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0
+            if (currentValue.equals("1")) {
+                System.out.println("鍙戦�佸惎鍔ㄥ瓧鐜板湪涓�1,鍋滄寰幆鍐欏叆");
+                break; // 閫�鍑哄惊鐜�
+            }
+            // 濡傛灉涓嶄负 1锛岀户缁啓鍏�
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 浠诲姟鍙戦�佸瓧
+            System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue);
+            try {
+                Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆�
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
 }

--
Gitblit v1.8.0