From 06ab9d2c987383154fe7759e23be7f4a69bf4f33 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 18 七月 2024 09:52:55 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java                                  |    1 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/controller/TemperingRecordController.java    |   20 +
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java                                        |   29 ++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java                                 |   21 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java                                     |   12 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                     |  122 ++-------
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml                                      |    2 
 UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue                                                                                |    8 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java   |    4 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java                    |    6 
 UI-Project/src/views/largescreen/largescreen.vue                                                                                         |    2 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/entity/TemperingRecord.java                  |   73 ++++++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml                                             |    4 
 UI-Project/src/views/UnLoadGlass/Landingindication.vue                                                                                   |    8 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                           |    2 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/impl/TemperingRecordServiceImpl.java |   20 +
 UI-Project/src/assets/dlpl9.png                                                                                                          |    0 
 JsonFile/PlcTemperingGlass.json                                                                                                          |  132 +++++++++++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml                                              |   16 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java                         |    4 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java                                |    7 
 UI-Project/src/assets/d1a.png                                                                                                            |    0 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                             |   24 +-
 /dev/null                                                                                                                                |   20 -
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java                                          |   60 +++++
 UI-Project/src/assets/lp9.png                                                                                                            |    0 
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue                                                                                  |    2 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java                                 |    4 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java                                          |    8 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/xml/TemperingRecordMapper.xml         |    5 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                                 |    1 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java                |   22 +
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/TemperingRecordMapper.java            |   16 +
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java                                  |   11 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/TemperingRecordService.java          |   16 +
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                                                   |    8 
 UI-Project/src/assets/lpa9.png                                                                                                           |    0 
 37 files changed, 515 insertions(+), 175 deletions(-)

diff --git a/JsonFile/PlcTemperingGlass.json b/JsonFile/PlcTemperingGlass.json
new file mode 100644
index 0000000..3abe9a6
--- /dev/null
+++ b/JsonFile/PlcTemperingGlass.json
@@ -0,0 +1,132 @@
+{
+    "plcAddressBegin": "DB88.0",
+    "plcAddressLenght": "58",
+    "dataType": "word",
+    "parameteInfor": [
+        {
+            "codeId": "confirmationWord",
+            "addressIndex": "0",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingLayoutId",
+            "addressIndex": "2",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "filmsid",
+            "addressIndex": "4",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperingType",
+            "addressIndex": "6",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "thickness",
+            "addressIndex": "8",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadingRate",
+            "addressIndex": "10",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "areaDifference",
+            "addressIndex": "12",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "state",
+            "addressIndex": "22",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "deviceState",
+            "addressIndex": "24",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "resultState",
+            "addressIndex": "26",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "loadSpeed",
+            "addressIndex": "28",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downSpeed",
+            "addressIndex": "30",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "load1",
+            "addressIndex": "32",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat1",
+            "addressIndex": "34",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heat2",
+            "addressIndex": "36",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool1",
+            "addressIndex": "38",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "cool2",
+            "addressIndex": "40",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "downId",
+            "addressIndex": "42",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "productionTime",
+            "addressIndex": "44",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "heatEnergy",
+            "addressIndex": "46",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "coolEnergy",
+            "addressIndex": "48",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp1",
+            "addressIndex": "50",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown1",
+            "addressIndex": "52",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureUp2",
+            "addressIndex": "54",
+            "addressLenght": "2"
+        },
+        {
+            "codeId": "temperatureDown2",
+            "addressIndex": "56",
+            "addressLenght": "2"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/UI-Project/src/assets/d1a.png b/UI-Project/src/assets/d1a.png
new file mode 100644
index 0000000..b031d4b
--- /dev/null
+++ b/UI-Project/src/assets/d1a.png
Binary files differ
diff --git a/UI-Project/src/assets/dlpl9.png b/UI-Project/src/assets/dlpl9.png
new file mode 100644
index 0000000..fc78fde
--- /dev/null
+++ b/UI-Project/src/assets/dlpl9.png
Binary files differ
diff --git a/UI-Project/src/assets/lp9.png b/UI-Project/src/assets/lp9.png
new file mode 100644
index 0000000..a976458
--- /dev/null
+++ b/UI-Project/src/assets/lp9.png
Binary files differ
diff --git a/UI-Project/src/assets/lpa9.png b/UI-Project/src/assets/lpa9.png
new file mode 100644
index 0000000..f7f2204
--- /dev/null
+++ b/UI-Project/src/assets/lpa9.png
Binary files differ
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 77bd047..14920eb 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -89,7 +89,7 @@
     >
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div>
    </div>
@@ -106,7 +106,7 @@
     >
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div>
    </div>
@@ -128,7 +128,7 @@
        backgroundColor: rect.state === 0 ? '#dedfe0' : '#d1edc4' }">
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
@@ -149,7 +149,7 @@
        backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }">
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index d987eb8..5c0133f 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -67,7 +67,7 @@
        backgroundColor: rect.state === 4 ? '#d1edc4' : '#f8e3c5' }">
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 2828438..749d012 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -69,8 +69,8 @@
 const cell8=ref(true);
 const cell9=ref(true);
 const selectedRow = ref(null); // 瀛樺偍閫変腑鐨勮鏁版嵁  
-
-
+ 
+ 
     // 褰撳墠椤电爜鍜屾瘡椤垫樉绀虹殑鏉℃暟
     const currentPage = ref(1);
     const itemsPerPage = computed(() => {
@@ -94,14 +94,14 @@
         return 25; // 榛樿鍊硷紝鍙互鏍规嵁瀹為檯闇�姹備慨鏀�
       }
     });
-
+ 
     // 璁$畻鍒嗛〉鍚庣殑鏁版嵁
     const paginatedUsers = computed(() => {
       const startIndex = calculateStartIndex();
       const endIndex = startIndex + itemsPerPage.value;
       return tableData.value.slice(startIndex, endIndex);
     });
-
+ 
     // 璁$畻褰撳墠椤电殑璧峰绱㈠紩
     function calculateStartIndex() {
       let index = 0;
@@ -145,7 +145,7 @@
         currentPage.value++;
       }
     };
-
+ 
     // 鎬婚〉鏁拌绠�
     const totalPages = computed(() => {
       // let total = 0;
@@ -162,9 +162,9 @@
       // }
       return 9;
     });
-
-
-
+ 
+ 
+ 
 const getTableRow = (row,type) =>{
   switch (type) {
     case 'edit' :{
@@ -452,7 +452,7 @@
       ElMessage.success(response.message);
       glassId.value = '';
       tableDataf.value = '';
-
+ 
       } else {  
       ElMessage.error(response.message);
       }  
@@ -548,14 +548,14 @@
             top: 29/length
           })); 
   }
-
+ 
   
 };
 // 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
 onMounted(() => {
   // fetchFlowCardId();
   initializeWebSocket(socketUrl, handleMessage);
-
+ 
 });
 function getStatusType(enableState: number) {  
   switch (enableState) {  
@@ -1039,7 +1039,7 @@
           </el-input>
           <el-button type="primary" plain style="margin-left: 10px;" @click="searchout">{{ $t('searchOrder.search') }}</el-button>
     </div>
-
+ 
     <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
         <el-table height="100%" ref="table"
         :data="tableDataf" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 89d7621..36af612 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="glass-rack">
     <div >
-      <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
+      <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg">
         <g stroke="null" id="Layer_1">
           <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
           <g v-for="(rack, index) in racks" :key="index"   :data="tableData">
@@ -42,11 +42,11 @@
 import { initializeWebSocket } from '@/utils/WebSocketService';
  import { WebSocketHost } from '@/utils/constants';
 const racks = ref([
-  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '',downGlassInfoList:"" } },
+  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456',downGlassInfoList:"" } },
  
-  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '',downGlassInfoList:"" } },
+  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678',downGlassInfoList:"" } },
  
-  { x: 140, y: 320, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: '' ,downGlassInfoList:""} }
+  { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} }
   
 ]);
 
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index 6566fde..c42fbe5 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="glass-rack">
     <div >
-      <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
+      <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg">
         <g stroke="null" id="Layer_1">
           <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
           <g v-for="(rack, index) in racks" :key="index">
@@ -42,11 +42,11 @@
 import { initializeWebSocket } from '@/utils/WebSocketService';
 import { WebSocketHost ,host} from '@/utils/constants'
 const racks = ref([
-  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '' } },
+  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
  
-  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '' } },
+  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
  
-  { x: 140, y: 320, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: '' } }
+  { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
   
 ]);
 
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 644af5a..640d82f 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,10 +1,8 @@
 <script setup>
 import {Search} from "@element-plus/icons-vue";
 import {reactive, onMounted, onBeforeUnmount} from "vue";
-
 import {useRouter} from "vue-router"
 const router = useRouter()
-
 import { useI18n } from 'vue-i18n'
   const { t } = useI18n()
   let language = ref(localStorage.getItem('lang') || 'zh')
@@ -39,7 +37,6 @@
     fetchFlowCardId(); 
   dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
-
 //鑾峰彇娴佺▼鍗″彿
 const fetchFlowCardId = async () => {
   try {
@@ -59,7 +56,6 @@
   }
 };
 //纭
-
 const handleConfirm = async () => {
   try {
     const firstPart = flowCardId.value.split('|')[0].trim(); // 
@@ -68,9 +64,7 @@
       workstationId: workstationId.value,
       flowCardId: firstPart,
       layer:twoPart
-
     }); 
-
     console.log(response)
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
@@ -88,16 +82,12 @@
     console.error(error);
   }
 };
-
-
 const updatePageData = () => {
   // 鍋囪浣犵殑椤甸潰涓婃湁涓�涓悕涓� tableData 鐨� Vue 缁勪欢
   // 浣犲彲浠ョ洿鎺ユ洿鏂� tableData 鐨勬暟鎹�
   fetchTableData()
   // 浣跨敤 $forceUpdate() 寮哄埗鏇存柊缁勪欢
-
 };
-
 const handleBindRack2 = (row) => {
   workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
   dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
@@ -129,8 +119,6 @@
             dialogFormVisiblea2.value = false;
     }
 };
-
-
 // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
 const fetchTableData = async () => {
   try {
@@ -151,78 +139,43 @@
     ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
   }
 };
-
-
 const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
-
   // 鏇存柊 tableData 鐨勬暟鎹�
-
   tableData.splice(0, tableData.length, ...data.params[0]);
 //  console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
-
 };
-
 // 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
-
 onMounted(() => {
   fetchFlowCardId();
   fetchTableData(); // 鑾峰彇鏁版嵁
   initializeWebSocket(socketUrl, handleMessage);
 });
-
 onBeforeUnmount(() => {
   console.log("鍏抽棴浜�")
   closeWebSocket();
 });
-
-const getTagType =(status) => {
-      return status === 1 ? 'success' : 'danger';
-      // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
-    }
-
-    const toggleStatus = (row) => {
-      // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
-      row.enableState = 1 - row.enableState; // Toggle between 0 and 1
-      // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
-      updateRowStatus(row);
-    };
-
-    const updateRowStatus = async (row) => {
-  try {
-    // 鍋囪浣犵殑鍚庣 API 鎺ユ敹 PUT 璇锋眰锛屽苟涓旈渶瑕佷紶閫� row.id 鍜� row.enableState 鍙傛暟
-   
-
-    const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', {
-      enableState:row.enableState,
-      id:row.id
-    }); 
-    console.log('Updated row status:', response.data);
-    // 鍙互鏍规嵁鍚庣杩斿洖鐨勬暟鎹繘琛岃繘涓�姝ュ鐞嗭紝姣斿鏇存柊鏈湴鐘舵�佺瓑
-  } catch (error) {
-    console.error('Error updating row status:', error);
-    // 澶勭悊閿欒鎯呭喌锛屾瘮濡傛彁绀虹敤鎴锋洿鏂板け璐�
-  }
-};
-
-
+// beforeUnmount(() => {
+//   closeWebSocket();
+// });
+// setInterval(fetchTableData, 2000)
 </script>
-
 <template>
   <div>
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
-      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
-        <el-table height="100%" ref="table" 
+    <el-card style="flex: 1;" v-loading="loading">
+      <el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="200px" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
           <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')" min-width="120" />
-          <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="120" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
           <el-table-column prop="totalquantity" align="center" :label="$t('reportWork.totalquantity')" min-width="120" />
           <el-table-column prop="racksnumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
           <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
-          <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
+          <el-table-column prop="artificialnumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
           <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" />
           <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
           <el-table-column
@@ -232,10 +185,7 @@
             prop="enableState"
           >
           <template #default="scope">
-           
-            <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)">
-          {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }}
-        </el-tag>
+            <el-tag type="success" >{{ scope.row.enableState==1? $t('reportWork.enable') : $t('reportWork.unenable')}}</el-tag>
           </template>
           </el-table-column>
           <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
@@ -247,7 +197,22 @@
         </el-table>
       </div>
     </el-card>
-
+    <!-- workstationId: '1',
+    workstationId: '1005',
+    flowCardId: '183.6',
+    totalquantity: '1991',
+    racksnumber:"1",
+    work_state: '寰呰瘑鍒�', -->
+  <div style="display: flex;" class="awatch">
+  <div id="main-body">
+      <Landingindication></Landingindication>
+    </div>
+  <div id="main-bodya">
+    <Landingindicationtwo></Landingindicationtwo>
+    </div>
+    </div>
+    </el-card>
+  </div>
 
     <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
@@ -273,12 +238,7 @@
       </div>
     </template>
   </el-dialog>
-
-
-
-
   <el-dialog v-model="dialogFormVisiblea2" top="21vh" width="30%" :title="$t('reportWork.clearglass')">
-
     <template #footer>
       <div id="dialog-footer">
         <el-button type="primary" @click="handleclear">
@@ -288,26 +248,8 @@
       </div>
     </template>
   </el-dialog>
-
-
-    <!-- workstationId: '1',
-    workstationId: '1005',
-    flowCardId: '183.6',
-    totalquantity: '1991',
-    racksnumber:"1",
-    work_state: '寰呰瘑鍒�', -->
-  </div>
-  <div style="display: flex;">
-  <div id="main-body">
-      <Landingindication></Landingindication>
-    </div>
-  <div id="main-bodya">
-    <Landingindicationtwo></Landingindicationtwo>
-    </div></div>
 </template>
-
 <style scoped>
-
 #dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
 #dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
 #dialog-footer{
@@ -323,15 +265,15 @@
    background-color: #337ecc;
    margin-left: 28%;
 }
-#awatch{
-  height: 450px;
+.awatch{
+  max-width: 100%;
 }
 #main-body{
-  margin-top: -20px;
-  margin-left: 200px;
+  margin-top: -40px;
+  margin-left: 150px;
 }
 #main-bodya{
-  margin-top: -10px;
+  margin-top: -40px;
   margin-left: 100px;
 }
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/largescreen/largescreen.vue b/UI-Project/src/views/largescreen/largescreen.vue
index bd8d350..7c3603a 100644
--- a/UI-Project/src/views/largescreen/largescreen.vue
+++ b/UI-Project/src/views/largescreen/largescreen.vue
@@ -26,7 +26,7 @@
       </el-table>
 </div> 
 <div id="center" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 750px;">
-  <img src="../../assets/d1.png" alt="" style="margin-left: -30px; width: 110%;height: 100%;position: relative;"> 
+  <img src="../../assets/d1a.png" alt="" style="margin-left: -10px; width: 100%;height: 100%;position: relative;"> 
 </div>
 <div id="centerright" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 240px;background-color: #911005;">
   <el-table height="240" ref="table" width="340px"
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeDetailController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeDetailController.java
deleted file mode 100644
index df9b277..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeDetailController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.mes.pp.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author zhoush
- * @since 2024-04-16
- */
-@RestController
-@RequestMapping("/optimize-detail")
-public class OptimizeDetailController {
-
-}
-
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java
index e42cefa..47f829c 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author wu
@@ -30,24 +30,25 @@
 @DS("pp")
 @Slf4j
 public class ReportingWorkServiceImpl extends ServiceImpl<ReportingWorkMapper, ReportingWork> implements ReportingWorkService {
-@Autowired
-private ReportingDamageMapper reportingDamageMapper;
-@Autowired
-private AwaitingRepairMapper awaitingRepairMapper;
+    @Autowired
+    private ReportingDamageMapper reportingDamageMapper;
+    @Autowired
+    private AwaitingRepairMapper awaitingRepairMapper;
+
     @Override
     public List<Reportingdamage> selectDamage(Reportingdamage reportingdamage) {
-        QueryWrapper<Reportingdamage>queryWrapper=new QueryWrapper<>();
-        queryWrapper.select("this_process,sum(completed_quantity)as completedQuantity,sum(breakage_quantity)as breakageQuantity,device_name ")
-                .eq("this_process",reportingdamage.getThisProcess())
+        QueryWrapper<Reportingdamage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("this_process,sum(completed_quantity) as completedQuantity,sum(breakage_quantity) as breakageQuantity ")
+                //.eq("this_process", reportingdamage.getThisProcess())
                 //.eq("device_name",reportingdamage.getDeviceName())
-                .ge("reporting_work_time",reportingdamage.getReportingWorkTime())
+                .ge("reporting_work_time", reportingdamage.getReportingWorkTime())
                 .groupBy("this_process");
         return reportingDamageMapper.selectList(queryWrapper);
     }
 
     @Override
     public List<AwaitingRepair> selectAwaitingRepair() {
-        QueryWrapper<AwaitingRepair>queryWrapper=new QueryWrapper<>();
+        QueryWrapper<AwaitingRepair> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("*");
         return awaitingRepairMapper.selectList(queryWrapper);
     }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
index 63b0c45..d3d7b75 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -1,5 +1,4 @@
 package com.mes.temperingglass.entity;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.mes.base.entity.BigStorageCageBaseInfo;
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
similarity index 78%
rename from hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
index 83088d7..9e37b94 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -11,7 +11,7 @@
  * @author zhoush
  * @since 2024-04-07
  */
-public interface TemperingAgoService extends MPJBaseService<TemperingGlassInfo> {
+public interface TemperingGlassInfoService extends MPJBaseService<TemperingGlassInfo> {
 
     List<TemperingGlassInfo> selectWaitingGlass();
 
@@ -22,4 +22,6 @@
     List<TemperingGlassInfo> selectOverGlass();
 
     List<TemperingGlassInfo> selectLayoutId();
+
+    List<TemperingGlassInfo> selectTaskType();
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
similarity index 77%
rename from hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
index e8a10af..806ee21 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -1,12 +1,13 @@
 package com.mes.temperingglass.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
-import com.mes.temperingglass.service.TemperingAgoService;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import com.github.yulichang.base.MPJBaseServiceImpl;
 
 import java.util.List;
 
@@ -19,7 +20,8 @@
  * @since 2024-04-07
  */
 @Service
-public class TemperingAgoServiceImpl extends MPJBaseServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingAgoService {
+@DS("salve_hangzhoumes")
+public class TemperingGlassInfoServiceImpl extends MPJBaseServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
     @Autowired
     TemperingGlassInfoMapper temperingMapper;
 
@@ -55,12 +57,16 @@
     public List<TemperingGlassInfo> selectOverGlass() {
         //鑾峰彇杩囨棆杞彴鏈�澶х殑閽㈠寲鐗堝浘id
         QueryWrapper<TemperingGlassInfo> wapper = new QueryWrapper<>();
-        wapper.select("top 1 *").eq("state", 4)
+        wapper.select("Top 1 *").eq("state", 4)
                 .orderByDesc("tempering_layout_id");
         //鏍规嵁鏈�澶х殑鐗堝浘id鏄剧ず閽㈠寲鍚庣殑鐗堝浘淇℃伅
         TemperingGlassInfo glassinfo= temperingMapper.selectOne(wapper);
+        if (glassinfo == null) {
+            return null;  // 鐩存帴杩斿洖null锛岃〃绀烘病鏈夋壘鍒扮鍚堟潯浠剁殑璁板綍
+        }
         QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
         wrapper.eq("tempering_layout_id",glassinfo.getTemperingLayoutId());
+
         return  temperingMapper.selectList(wrapper);
     }
 
@@ -72,4 +78,12 @@
                 .orderByAsc("tempering_layout_id");
         return temperingMapper.selectList(wrapper);
     }
+
+    @Override
+        public List<TemperingGlassInfo> selectTaskType() {
+        QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
+        wrapper.select("state")
+                .groupBy("state");
+        return temperingMapper.selectList(wrapper);
+    }
 }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
index 036e737..f752b45 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
@@ -33,15 +33,19 @@
     @ApiOperation("鏂板瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
     @PostMapping("/saveRole")
 //    @PreAuthorize("hasAuthority('sys:role:save')")
-    public Result<SysRole> saveRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
-        return Result.success(sysRoleService.saveRole(sysRoleVO));
+    public Result<SysRoleVO> saveRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
+        //return Result.success(sysRoleService.saveRole(sysRoleVO));
+        sysRoleService.saveRole(sysRoleVO);
+        return Result.build(200,"鏂板鎴愬姛",sysRoleVO);
     }
 
     @ApiOperation("缂栬緫瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
     @PostMapping("/updateRole")
 //    @PreAuthorize("hasAuthority('sys:role:save')")
-    public Result<String> updateRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
-        return Result.success(sysRoleService.updateRole(sysRoleVO));
+    public Result<SysRoleVO> updateRole(@Validated @RequestBody SysRoleVO sysRoleVO) {
+       // return Result.success(sysRoleService.updateRole(sysRoleVO));
+        sysRoleService.updateRole(sysRoleVO);
+        return Result.build(200,"鏂板鎴愬姛",sysRoleVO);
     }
 
     @ApiOperation("鏌ヨ瑙掕壊鍙婅鑹蹭笅鐨勬潈闄愪俊鎭�")
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
index 3201d55..a787182 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
@@ -117,10 +117,21 @@
             roleMenu.setMenuId(menu.getId());
             return roleMenu;
         }).collect(Collectors.toList());
+        // 浣跨敤娴佸鐞嗚彍鍗曞垪琛紝鎻愬彇 children 鐨� id锛屽苟璁剧疆鍒� SysRoleMenu 涓�
+        List<SysRoleMenu> childrenList = menuList.stream()
+                .flatMap(menu -> menu.getChildren().stream()) // 鎵佸钩鍖栧鐞� children 鍒楄〃
+                .map(child -> {
+                    SysRoleMenu roleMenu = new SysRoleMenu();
+                    roleMenu.setRoleId(roleId);
+                    roleMenu.setMenuId(child.getId()); // 璁剧疆 child 鐨� id 鍒� menuId
+                    return roleMenu;
+                })
+                .collect(Collectors.toList());
         log.info("娓呯┖瑙掕壊鏉冮檺琛ㄤ腑璇ヨ鑹蹭俊鎭�");
         // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑
         sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
         sysRoleMenuService.saveBatch(roleMenuList);
+        sysRoleMenuService.saveBatch(childrenList);
         // 鍒犻櫎缂撳瓨
         sysUserService.clearUserAuthorityInfoByRoleId(roleId);
         return "success";
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
index 6f13e7c..e897e65 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
@@ -43,7 +43,6 @@
 
     @ApiOperation("閫�鍑虹櫥褰�")
     @PostMapping("/logout")
-//    @PreAuthorize("hasRole('ROLE_admin')")
     @PreAuthorize("hasAuthority('xt:yh')")
     public Result<String> logout() {
         return Result.success(sysUserService.logout());
@@ -61,10 +60,9 @@
     @PostMapping("/updateUser")
 //    @PreAuthorize("hasAuthority('sys:user:update')")
     public Result<List<SysUserVO>> updateUser(@Validated @RequestBody SysUserVO sysUser) {
-        //return Result.success(sysUserService.updateUser(sysUser));
         sysUserService.updateUser(sysUser);
         GeneralRequest request=new GeneralRequest();
-        request.setKey("");
+        //request.setKey("");
         return Result.success(sysUserService.listByUserName(request));
         //鏇存敼浜嗕慨鏀逛箣鍚庤繑鍥炴墍鏈夌敤鎴峰垪琛�
     }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 98206a6..c48b407 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -375,7 +375,7 @@
         List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
         //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊�
         if (CollectionUtil.isNotEmpty(list)) {
-            int diff = (int) list.get(0);
+            Long diff = (Long) list.get(0);
             return diff > threshold;
         } else {
             return Boolean.FALSE;
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
index 8c66de2..e57a33f 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -43,7 +43,7 @@
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
      */
 
-    @Scheduled(fixedDelay = 300)
+    @Scheduled(fixedDelay = 30000000)
     public void plcLoadGlassTask() throws InterruptedException {
         try {
             //鑾峰彇鑱旀満鐘舵��
@@ -87,7 +87,7 @@
         }
     }
 
-    @Scheduled(fixedDelay = 300)
+    @Scheduled(fixedDelay = 30000000)
     public void plcLoadGlassReport(){
         //鑾峰彇鏄惁鏈夋眹鎶�
         String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
@@ -144,8 +144,8 @@
     public void loadGlassStatus(){
         JSONObject jsonObject = new JSONObject();
         //姝e湪杩涜鐨勪换鍔�
-        String inkageStatus =plcParameterObject.getPlcParameter("MesToPlc").getValue();
-        //String inkageStatus ="1";
+        //String inkageStatus =plcParameterObject.getPlcParameter("MesToPlc").getValue();
+        String inkageStatus ="1";
         jsonObject.append("InkageStatus", inkageStatus);
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass");
         if (sendwServer != null) {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
index f020aa3..9bcefd7 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -52,7 +52,11 @@
       */
      UpPattenUsage selectSequence(UpPattenUsage upPattenUsage);
 
-
+     /**
+      * 鏇存敼涓婄墖鐜荤拑鐘舵��
+      * @return UpPattenUsage
+      */
      Boolean updateGlassState(UpPattenUsage upPattenUsage);
+
 }
 
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..94ae268
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,60 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
+import com.mes.tools.S7control;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.20.202"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+
+    public PlcParameterObject PlcMesObject;
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+            String PlcLoadGlass = System.getProperty("user.dir") + "/JsonFile/PlcTemperingGlass.json";
+            PlcMesObject = InitUtil.initword(PlcLoadGlass);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            byte[] getplcvlues = plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+            if (getplcvlues != null) {
+                PlcMesObject.setPlcParameterList(getplcvlues);
+            }
+        }
+    }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
index 3f108b5..794ee4a 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
@@ -1,6 +1,6 @@
 package com.mes.job;
 import cn.hutool.json.JSONObject;
-import com.mes.temperingglass.service.TemperingAgoService;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
@@ -19,13 +19,13 @@
 public class PlcTemperingGlassTask {
 
     @Autowired
-    private TemperingAgoService temperingAgoService;
+    private TemperingGlassInfoService temperingAgoService;
     /**
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
      */
 
-    @Scheduled(fixedDelay = 1000)
+    @Scheduled(fixedDelay = 2000)
     public void temperingGlassHome(){
         JSONObject jsonObject = new JSONObject();
         //姝e湪绛夊緟杩涚墖鐨勭幓鐠�
@@ -46,6 +46,7 @@
         jsonObject.append("outGlass", outGlass);
         //杩囨棆杞彴閽㈠寲鍚庣殑鐜荤拑
         List<TemperingGlassInfo> overGlass = temperingAgoService.selectOverGlass();
+
         jsonObject.append("overGlass", overGlass);
 
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingGlass");
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
new file mode 100644
index 0000000..6b27ad0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
@@ -0,0 +1,29 @@
+package com.mes.job;
+
+import com.mes.tempering_record.service.TemperingRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/7/17 12:47
+ * @Description:
+ */
+public class TemperingTask {
+
+    @Autowired
+    private TemperingRecordService temporalRecordService;
+
+
+    @Scheduled(fixedDelay = 1000)
+    public void temperingGlassBefore() {
+        //todo:鑾峰彇閽㈠寲鐗堝浘涓姸鎬佷负2鐨勶紙杩涚倝瀹屾垚鐨勭幓鐠冧俊鎭級  涓斾笉瀛樺湪閽㈠寲璁板綍琛ㄥ唴鐨�
+
+
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void temperingGlassAfter() {
+
+    }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/controller/TemperingRecordController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/controller/TemperingRecordController.java
new file mode 100644
index 0000000..774f5ae
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/controller/TemperingRecordController.java
@@ -0,0 +1,20 @@
+package com.mes.tempering_record.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+@RestController
+@RequestMapping("/temperingRecord")
+public class TemperingRecordController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/entity/TemperingRecord.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/entity/TemperingRecord.java
new file mode 100644
index 0000000..b11715c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/entity/TemperingRecord.java
@@ -0,0 +1,73 @@
+package com.mes.tempering_record.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TemperingRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 閽㈠寲鐗堝浘
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 鐜荤拑鏉愯川(鑶滅郴0.鐧界幓1.鍗曢摱2.鍙岄摱3涓夐摱 4.瓒呯櫧5.鐑弽灏�)
+     */
+    private Integer glassType;
+
+    /**
+     * 閽㈠寲绫诲瀷锛�1.鍏ㄩ挗:2.鍗婇挗锛�
+     */
+    private Integer temperingType;
+
+    /**
+     * 鍘氬害锛堝帤搴�*10)
+     */
+    private Double thickness;
+
+    /**
+     * 瑁呰浇鐜�
+     */
+    private Double loadingRate;
+
+    /**
+     * 闈㈢Н宸�
+     */
+    private Double areaDifference;
+
+    /**
+     * 鐢熶骇鑰楁椂
+     */
+    private String productionTime;
+
+    /**
+     * 鍔犵儹鑳借��
+     */
+    private String heatEnergy;
+
+    /**
+     * 鍐峰嵈鑳借��
+     */
+    private String coolEnergy;
+
+    /**
+     * 鏄惁瀹屾垚(plc鑾峰彇闈�1锛氬弬鏁颁笉瀛樺湪锛�2銆佸尮閰嶅畬鎴愶紱3銆佸尮閰嶈秴鏃讹級
+     */
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/TemperingRecordMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/TemperingRecordMapper.java
new file mode 100644
index 0000000..c163cb3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/TemperingRecordMapper.java
@@ -0,0 +1,16 @@
+package com.mes.tempering_record.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.tempering_record.entity.TemperingRecord;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+public interface TemperingRecordMapper extends BaseMapper<TemperingRecord> {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/xml/TemperingRecordMapper.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/xml/TemperingRecordMapper.xml
new file mode 100644
index 0000000..73d8f85
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/xml/TemperingRecordMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.tempering_record.mapper.TemperingRecordMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/TemperingRecordService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/TemperingRecordService.java
new file mode 100644
index 0000000..49137c5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/TemperingRecordService.java
@@ -0,0 +1,16 @@
+package com.mes.tempering_record.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.tempering_record.entity.TemperingRecord;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+public interface TemperingRecordService extends IService<TemperingRecord> {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/impl/TemperingRecordServiceImpl.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/impl/TemperingRecordServiceImpl.java
new file mode 100644
index 0000000..1596f57
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/impl/TemperingRecordServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.tempering_record.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.tempering_record.entity.TemperingRecord;
+import com.mes.tempering_record.mapper.TemperingRecordMapper;
+import com.mes.tempering_record.service.TemperingRecordService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-07-17
+ */
+@Service
+public class TemperingRecordServiceImpl extends ServiceImpl<TemperingRecordMapper, TemperingRecord> implements TemperingRecordService {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
index 3496554..408199a 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -1,5 +1,5 @@
 package com.mes.temperingglass.controller;
-import com.mes.temperingglass.service.TemperingAgoService;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.utils.Result;
 import io.swagger.annotations.ApiOperation;
@@ -22,7 +22,7 @@
 public class TemperingGlassInfoController {
 
     @Autowired
-    private TemperingAgoService temperingAgoService;
+    private TemperingGlassInfoService temperingAgoService;
 
     @ApiOperation("鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�")
     @GetMapping("/selectWaitingGlass") // 鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
index 18d4c7e..ae0d119 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
@@ -4,8 +4,18 @@
       primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
+#        hangzhoumes:
+#          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+#          username: root
+#          password: beibo.123/
+#          driver-class-name: com.mysql.cj.jdbc.Driver
+#        salve_hangzhoumes:
+#          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
+#          username: sa
+#          password: beibo.123/
+#          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
         hangzhoumes:
-          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+          url: jdbc:mysql:127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
@@ -15,12 +25,12 @@
           password: beibo.123/
           driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
         pp:
-          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          url: jdbc:mysql://127.0.0.1:3306/pp?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
         sd:
-          url: jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8
+          url: jdbc:mysql://127.0.0.1:3306/sd?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
index 3fc6fbb..697a608 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
@@ -1,7 +1,7 @@
 spring:
   datasource:
     dynamic:
-      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: salve_hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
         hangzhoumes:
@@ -28,6 +28,8 @@
     nacos:
       discovery:
         server-addr: 10.153.19.150:8848
+  application:
+        name: temperingGlass
   redis:
     database: 0
     host: 10.153.19.150
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index 8b40827..6e60501 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -489,6 +489,7 @@
         DownGlassInfo downGlassInfo = new DownGlassInfo();
         BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo);
         //todo锛氳惤鏋剁墖搴�
+        downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()));
         downGlassInfoService.save(downGlassInfo);
         //鐢熸垚浠诲姟淇℃伅
         GlassInfo glassInfo = new GlassInfo();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
index 1930840..32bca1a 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -38,7 +38,7 @@
         order by count desc limit 1
     </select>
     <select id="queryMaxSequence" resultType="java.lang.Integer">
-        SELECT max(sequence) + 1 as sequence
+        SELECT COALESCE(max(sequence) + 1, 0) as sequence
         FROM down_glass_info
         WHERE flow_card_id = #{flowCardId}
           AND layer = #{layer}

--
Gitblit v1.8.0