From f42bb93047f0aba68f358968499e1174e67a715a Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期一, 01 四月 2024 08:40:31 +0800
Subject: [PATCH] 更新下片逻辑

---
 UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java |   18 +++-
 UI-Project/src/views/mm/identify/identify.vue                             |  144 ++++++++++++++++++++++++------------
 UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java       |    4 
 UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue                 |    1 
 UI-Project/package-lock.json                                              |   11 ++
 UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java           |   33 +++++--
 UI-Project/package.json                                                   |    1 
 7 files changed, 147 insertions(+), 65 deletions(-)

diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index 61009b3..a7386d3 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -16,6 +16,7 @@
         "pinia": "^2.1.6",
         "pinia-plugin-persistedstate": "^3.2.0",
         "sortablejs": "^1.15.1",
+        "sweetalert2": "^11.10.7",
         "vue": "^3.3.4",
         "vue-router": "^4.2.4",
         "vxe-table": "^4.5.15",
@@ -1405,6 +1406,11 @@
         "node": ">=0.8"
       }
     },
+    "node_modules/sweetalert2": {
+      "version": "11.10.7",
+      "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz",
+      "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg=="
+    },
     "node_modules/to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -2440,6 +2446,11 @@
         "frac": "~1.1.2"
       }
     },
+    "sweetalert2": {
+      "version": "11.10.7",
+      "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz",
+      "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg=="
+    },
     "to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
diff --git a/UI-Project/package.json b/UI-Project/package.json
index 459838c..75d8054 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -16,6 +16,7 @@
     "pinia": "^2.1.6",
     "pinia-plugin-persistedstate": "^3.2.0",
     "sortablejs": "^1.15.1",
+    "sweetalert2": "^11.10.7",
     "vue": "^3.3.4",
     "vue-router": "^4.2.4",
     "vxe-table": "^4.5.15",
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index c0334bc..9b04af7 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -29,6 +29,7 @@
 </template>
 
 <script>
+
 export default {
   data() {
     return {
diff --git a/UI-Project/src/views/mm/identify/identify.vue b/UI-Project/src/views/mm/identify/identify.vue
index 9306199..71d125a 100644
--- a/UI-Project/src/views/mm/identify/identify.vue
+++ b/UI-Project/src/views/mm/identify/identify.vue
@@ -1,67 +1,107 @@
 <template>
-  <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
+  <el-card style="margin-left: 10px; margin-top: 10px; margin-right: 10px;" v-loading="loading">
     <div style="display: flex;">
-      <div style="margin-left: 400px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
-      <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
+      <div style="margin-left: 400px; font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
+      <div style="margin-left: 150px; font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
     </div>
-      <svg width="100%" height="650" xmlns="http://www.w3.org/2000/svg">
-        <g stroke="null" id="Layer_1">
-          <title stroke="null">Layer 1</title>
-          <image x="100" y="50" width="100" xlink:href="${pageContext.request.contextPath}/static/images/log2.png"/>
-          <!-- <text stroke="#000" xml:space="preserve" font-family="'Catamaran'" font-size="25" class="font1" y="105" x="740">1鍙风嚎鐜荤拑钀芥灦鎸囧</text> -->
-
-          <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
-          <g v-for="(rack, index) in racks" :key="index">
-            <rect :x="rack.x" :y="rack.y" :width="rack.width" :height="rack.height" :fill="rack.fillColor"/>
-            <rect 
-              :x="calculateItemXPosition(rack, rack.item, index)" 
-              :y="calculateItemYPosition(rack, rack.item, index)" 
-              :width="rack.item.width" 
-              :height="rack.item.height" 
-              :fill="rack.item.fillColor"
-            />
-            <!-- <text :x="rack.x" :y="rack.y-10"  text-anchor="middle">{{ index + 1 }}鍙峰伐浣�</text> -->
-            <!-- <text :x="rack.x" :y="rack.y-30"  text-anchor="middle">{{rack.item.content}}</text> -->
-          </g>
-
-          <!-- 鍏朵粬鍏冪礌 -->
-          <!-- <text id="glass_size" font-size="30px" font-weight="bold" x="100" y="600" text-anchor="middle" alignment-baseline="middle"></text> -->
-          <!-- <text id="glass_pos" font-size="30px" font-weight="bold" x="100" y="600" text-anchor="middle" alignment-baseline="middle"></text> -->
+    <svg width="100%" height="650" xmlns="http://www.w3.org/2000/svg">
+      <g v-for="(rack, index) in racks" :key="index">
+        <rect 
+          :x="rack.x" 
+          :y="rack.y" 
+          :width="rack.width" 
+          :height="rack.height" 
+          :fill="rack.fillColor" 
+          :data-index="index" 
+          class="rack-rect" 
+          @click="showRectInfo(rack)"
+        />
+        <g v-for="(item, itemIndex) in rack.items" :key="itemIndex">
+          <rect 
+            :x="calculateItemXPosition(rack, item, itemIndex)" 
+            :y="calculateItemYPosition(rack, item, itemIndex)" 
+            :width="item.width" 
+            :height="item.height" 
+            :fill="item.fillColor"
+          />
         </g>
-      </svg>
+      </g>
+    </svg>
   </el-card>
 </template>
 
 <script>
+import Swal from 'sweetalert2'
 export default {
   data() {
     return {
+      loading: false,
       racks: [
-        { x: 70, y: 126, width: 600, height: 240, fillColor: '#79bbff', item: { width: 40, height: 30, top:5, fillColor: '#911005' ,content:'NG123456'} },
-        { x: 675, y: 126, width: 600, height: 240, fillColor: '#a0cfff', item: { width: 40, height: 30, fillColor: 'yellow' ,content:'NG1234567'} },
-        { x: 70, y: 370, width: 1100, height: 260, fillColor: '#529b2e', item: { width: 40, height: 30, fillColor: 'yellow' ,content:'NG12345678'} },
-        { x: 1175, y: 370, width: 200, height: 300, fillColor: '#529b2e', item: { width: 40, height: 30, fillColor: 'yellow' ,content:'NG123456910'} },
-      ]
+        { 
+          x: 70, y: 126, width: 600, height: 240, fillColor: '#79bbff', 
+          items: [
+            { position: 'top-left', width: 40, height: 30, fillColor: '#911005', content: 'NG123456' },
+            { position: 'bottom-right', width: 40, height: 30, fillColor: 'yellow', content: 'NG1234567' }
+          ]
+        },
+        { 
+          x: 675, y: 126, width: 600, height: 240,  fillColor: '#79bbff', 
+          items: [
+            { position: 'top-left', width: 40, height: 30, fillColor: '#911005', content: 'NG123456' },
+            { position: 'top-right', width: 40, height: 30, fillColor: 'yellow', content: 'NG1234567' }
+          ]
+        },
+        { 
+          x: 70, y: 370, width: 1100, height: 260, fillColor: '#79bbff', 
+          items: [
+            { position: 'top-left', width: 40, height: 30, fillColor: '#911005', content: 'NG123456' },
+            { position: 'top-right', width: 40, height: 30, fillColor: 'yellow', content: 'NG1234567' }
+          ]
+        },
+        { 
+          x: 1175, y: 370, width: 200, height: 300,fillColor: '#79bbff', 
+          items: [
+            { position: 'top-left', width: 40, height: 30, fillColor: '#911005', content: 'NG123456' },
+            { position: 'top-right', width: 40, height: 30, fillColor: 'yellow', content: 'NG1234567' }
+          ]
+        }
+        
+        // Add more racks and items here as needed
+      ],
     };
   },
+  
   methods: {
     calculateItemXPosition(rack, item, index) {
-  if (index === 4) {
-    // 绗簲涓煩褰紝纭繚涓嶈秴鍑烘灦瀛愬彸杈圭晫
-    return Math.min(rack.x + rack.width - item.width, rack.x + rack.width);
-  } else {
-    return Math.max(rack.x, Math.min(rack.x + rack.width / 2 - item.width / 2, rack.x + rack.width - item.width));
-  }
-},
-calculateItemYPosition(rack, item, index) {
-  if (index === 0 || index === 2) {
-    // 绗竴涓拰绗笁涓煩褰紝璐磋繎鏋跺瓙椤堕儴
-    return Math.min(rack.y, rack.y + rack.height);
-  } else if (index === 1 || index === 3) {
-    // 绗簩涓拰绗洓涓煩褰紝璐磋繎鏋跺瓙搴曢儴
-    return Math.max(rack.y, Math.min(rack.y + rack.height - item.height, rack.y + rack.height));
-  } 
-}
+      if (item.position === 'top-right' || item.position === 'bottom-right') {
+        return Math.min(rack.x + rack.width - item.width, rack.x + rack.width);
+      } else {
+        return rack.x;
+      }
+    },
+    
+    calculateItemYPosition(rack, item, index) {
+      if (item.position === 'bottom-left' || item.position === 'bottom-right') {
+        return Math.min(rack.y + rack.height - item.height, rack.y + rack.height);
+      } else {
+        return rack.y;
+      }
+    },
+    
+    showCustomAlert(content) {
+      Swal.fire({
+        title: 'Rack Information',
+        text: content,
+        icon: 'info',
+      });
+    },
+    
+    showRectInfo(rectInfo) {
+      const contents = rectInfo.items.map(item => item.content).join(', ');
+      this.$nextTick(() => {
+        this.showCustomAlert(contents);
+      });
+    },
   }
 };
 </script>
@@ -71,4 +111,12 @@
   width: 100%;
   height: 80vh;
 }
+.rack-rect:hover {
+  cursor: pointer;
+}
+.custom-popover-class {
+  background-color: lightgrey;
+  color: black;
+  border: 1px solid black;
+}
 </style>
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
index 524d865..c514d8f 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
@@ -14,7 +14,7 @@
     private Integer deviceId; // 璁惧id
     private Integer enableState; // 鍚敤鐘舵��
     private Integer workState; // 宸ヤ綔鐘舵��
-    private Integer racks_number; // 宸茶惤鏋舵暟閲�
-    private Integer total_quantity; // 鎬绘暟閲�
+    private int racksnumber; // 宸茶惤鏋舵暟閲�
+    private Integer totalquantity; // 鎬绘暟閲�
 
 }
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
index 163348d..31f6a44 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
@@ -38,22 +38,32 @@
 //浠庢満姊版墜浠诲姟琛ㄦ煡璇㈢姸鎬佷负1鐨勬祦绋嬪崱鍙�
 //    @Select("SELECT *  FROM down_workstation_task WHERE state = 1")
 //    List<DownWorkstation> selectdownWorkstationstate();
-
-    @Select("SELECT dw.flow_card_id,dw.racks_number FROM down_workstation_task dwt JOIN down_workstation dw ON dwt.flow_card_id = dw.flow_card_id WHERE dwt.state = 1 LIMIT 1")
+//鏌ヨ宸ヤ綅琛ㄥ拰浠诲姟琛ㄤ腑鐘舵�佷负1鐨勬祦绋嬪崱鍙峰拰宸茶惤鏋舵暟閲�
+    @Select("SELECT dwt.flow_card_id,dw.id,dw.racks_number FROM down_workstation_task dwt JOIN down_workstation dw ON dwt.flow_card_id = dw.flow_card_id WHERE dwt.state = 1 LIMIT 1")
     List<DownWorkstation> selectdownWorkstationstate();
-
+//鏇存柊钀芥灦鏁伴噺
     @Update("UPDATE down_workstation SET racks_number = #{racksNumber} " +
             "WHERE flow_card_id = #{flowCardId}")
     void  update_racks_number(@Param("flowCardId") String flowCardId,
                                    @Param("racksNumber") Integer racksNumber);
 
-
+//鎻掑叆鏈烘浠诲姟琛�
     @Insert("INSERT INTO down_workstation_task (flow_card_id, width, height, thickness, filmsid,state) " +
             "VALUES (#{flowCardId}, #{width}, #{height}, #{thickness}, #{filmsid},1)")
     void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
 
+//鏍规嵁宸ヤ綅id鏇存柊瀹炰綋绫绘帴鏀剁殑鏁版嵁
+@Update("UPDATE down_workstation SET width = #{width}, height = #{height}, flow_card_id = #{flowCardId} WHERE workstation_id = #{workstationId}")
+void updateFlowCardId(DownWorkstation downWorkstation);
 
 
 
+//婊℃灦鎷夎蛋锛屾竻绌轰俊鎭�
+    @Update("UPDATE down_workstation SET width = null, height = null, flow_card_id = null WHERE workstation_id = #{workstationId}")
+    void clearFlowCardId(DownWorkstation downWorkstation);
 
+
+
+    @Update("UPDATE down_workstation_task SET state = 0 WHERE flow_card_id = #{flowCardId}")
+    void update_task_state_to_zero(@Param("flowCardId") String flowCardId);
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java b/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
index 581cfe8..398948d 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/PlcService.java
@@ -72,11 +72,10 @@
                 downGlassInfoMapper.insert(newdownGlassInfo);
                 //鎻掑叆鏁版嵁鍒版満姊版墜浠诲姟琛�
                 downWorkstationMapper.insertdownWorkstationtask(newdownGlassInfo);
-                //鏇存柊浠诲姟琛ㄧ姸鎬佷负0
+                //鏇存柊涓嬬墖浠诲姟琛ㄧ姸鎬佷负0
                 downGlassInfoMapper.updateTaskStateToZero(downGlassInfo.getFlowCardId());
 
                 sequence++; // 閫掑椤哄簭瀛楁鍊�
-
 
 
 
@@ -91,11 +90,18 @@
         //downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
         //downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
         try {
+            //鏌ヨ涓嬬墖宸ヤ綅琛ㄤ腑鏋跺瓙鏄惁缁戝畾浜嗘祦绋嬪崱鍙� 宸ヤ綅琛ㄥ拰浠诲姟琛ㄤ腑鐘舵�佷负1鐨勬祦绋嬪崱鍙峰拰宸茶惤鏋舵暟閲�
             List<DownWorkstation> taskdownWorkstation = downWorkstationMapper.selectdownWorkstationstate();
             if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
-                //鏌ヨ涓嬬墖宸ヤ綅琛ㄤ腑鏄惁缁戝畾浜嗘灦瀛愭槸鍚︾粦瀹氫簡娴佺▼鍗″彿锛屽鏋滃凡缁忕粦瀹氬垯鏇存柊宸茶惤鏋舵暟閲�,骞朵笖鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
+                //锛屽鏋滃凡缁忕粦瀹氬垯鏇存柊宸茶惤鏋舵暟閲�,骞朵笖鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
                 for (DownWorkstation downWorkstation : taskdownWorkstation) {
-                    downWorkstationMapper.update_racks_number(downWorkstation.getFlowCardId(),6 );
+
+                    //鏇存柊涓嬬墖宸ヤ綅琛ㄤ腑宸茶惤鏋舵暟閲�
+                    downWorkstationMapper.update_racks_number(downWorkstation.getFlowCardId(),downWorkstation.getRacksnumber()+1 );
+
+                    //鏇存柊鏈烘浠诲姟琛ㄤ腑鐘舵�佷负0
+                    downWorkstationMapper.update_task_state_to_zero(downWorkstation.getFlowCardId());
+                    //鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
                     downGlassInfoMapper.deletetask(downWorkstation.getFlowCardId());
 
                 }
@@ -111,18 +117,23 @@
 
 
 
-    //缁戝畾娴佺▼鍗″彿鏋跺瓙
+
+    // 缁戝畾娴佺▼鍗″彿鏋跺瓙
     public void bindingshelf(DownWorkstation downWorkstation){
-
-        String FlowCardId=downWorkstation.getFlowCardId();
-        int WorkstationId=downWorkstation.getWorkstationId();
-
-
-
+        downWorkstationMapper.updateFlowCardId(downWorkstation);
     }
 
 
 
+    // 婊℃灦鎷夎蛋 娓呴櫎娴佺▼鍗′俊鎭�
+    public void clearFlowCardId(DownWorkstation downWorkstation){
+
+       downWorkstationMapper.clearFlowCardId(downWorkstation);
+    }
+
+
+
+
 
 
 

--
Gitblit v1.8.0