From 5d4bbdc4f5dd55b2094e3ffea73701db65f3dad1 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 22 八月 2024 11:34:26 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java    |   13 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java |   36 +++
 UI-Project/src/lang/zh.js                                                                             |   20 ++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java          |    9 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java            |    3 
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                |  407 ++++++++++++++++++++++++++++++++++-----------
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java     |   21 ++
 UI-Project/src/views/largescreen/largescreen.vue                                                      |   29 --
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml                  |    2 
 9 files changed, 405 insertions(+), 135 deletions(-)

diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index ff52e1c..7c79146 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -247,6 +247,22 @@
         intofurnace:'杩涚倝涓�',
         beforefurnace:'杩涚倝鍓�',
         outfurnace:'宸插嚭鐐夌幓鐠�',
+        print:'鎷胯蛋鎵撳嵃',
+        printing:'鎵撳嵃',
+        projectnumber:'璇疯緭鍏ュ伐绋嬪彿',
+        inquire:'鏌ヨ',
+        project:'宸ョ▼鍙�',
+        awayprocess:'鎷胯蛋宸ュ簭',
+        awayequipment:'鎷胯蛋璁惧',
+        awayteam:'鎷胯蛋鐝粍',
+        flowcard:'娴佺▼鍗�',
+        layer:'灞傚彿',
+        temperinglayout:'鐐夊彿',
+        temperingfeed:'鐗囧簭',
+        width:'瀹�',
+        height:'楂�',
+        thickness:'鍘�',
+        glasstakeout:'鐜荤拑鎷胯蛋娓呭崟',
     },
     reportWork:{
         lowerbit:'涓嬬墖浣�',
@@ -424,7 +440,7 @@
         customerName: '瀹㈡埛鍚嶇О',
         project: '椤圭洰鍚嶇О',
         are: '闈㈢Н',
-        quantity: '鍖呰鏂瑰紡',
+        quantity: '鏁伴噺',
         warehousing: '鐘舵��',
         deliveryDate: '閫佽揣鏃堕棿',
         notstocked: '鏈叆搴�',
@@ -485,5 +501,5 @@
         presponsibleequipment :'璇烽�夋嫨璐d换璁惧',
         remark :'澶囨敞',
         premark :'璇疯緭鍏ュ娉�',
-    },
+    }
 }
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 3d790cf..cee0727 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -1,34 +1,93 @@
 <script setup>
 import {Search} from "@element-plus/icons-vue";
 import {reactive} from "vue";
-import {useRouter} from "vue-router"
 import request from "@/utils/request"
-import { ref, onMounted, onBeforeUnmount } from 'vue';  
+import { ref, onMounted, onBeforeUnmount,nextTick  } from 'vue';  
 import { WebSocketHost ,host} from '@/utils/constants'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
   import { useI18n } from 'vue-i18n'
+  import { useRouter } from 'vue-router'
   const { t } = useI18n()
   let language = ref(localStorage.getItem('lang') || 'zh')
 const dialogFormVisible = ref(false)
 const dialogFormVisiblea = ref(true)
 const dialogFormVisibleb = ref(false)
-const blind = ref(false)
+const dialogFormVisiblec = ref(false)
+const blind1 = ref(false)
+const blind2 = ref(false)
+const blinda = ref(false)
+const blindb = ref(false)
+const dialogVisible = ref(false)
 const width = ref();
 const height = ref();
 const adjustedRects1 = ref([]);
 const adjustedRects2 = ref([]);
 const adjustedRectsa = ref([]);
 const adjustedRectsb = ref([]);
+const tableData = ref([])
+const engineerId = ref('')
+const router = useRouter()
 const currentGlassId = ref(null);
 const currenttemperingFeedSequence = ref(null);
+onMounted(async () => {  
+  try {  
+    const response = await request.post('/loadGlass/damage/selectDamagePrint', {
+    type: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code === 200) {  
+          tableData.value = response.data
+          console.log(response.data);
+    } else {  
+      ElMessage.warning(res.msg)
+    }  
+  } catch (error) {  
+    // console.error('Error fetching rects :', error);  
+  }  
+}); 
+const selectReportData = async () => {
+  let postData = {  
+    type: 9,  
+    workingProcedure: '閽㈠寲',  
+    ...(engineerId.value !== '' && { engineerId: engineerId.value }),  
+  };  
+  const response = await request.post("/loadGlass/damage/selectDamagePrint", postData)
+  if (response.code === 200) {
+    tableData.value = response.data;
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+const printing = async () => {
+  let postData = {  
+    type: 9,  
+    workingProcedure: '閽㈠寲',  
+    ...(engineerId.value !== '' && { engineerId: engineerId.value }),  
+  };  
+  console.log(engineerId.value);
+  
+  const response = await request.post("/loadGlass/damage/selectDamagePrintDetails", postData)
+  if (response.code === 200) {
+  dialogVisible.value = true;
+    tableData.value = response.data; 
+    await nextTick(); 
+  window.print();  
+} else {
+    ElMessage.error(response.message);
+  }
+};
+const printTable = () => {  
+  // 杩欓噷鍙互娣诲姞涓�浜汣SS鏍峰紡鏉ヤ紭鍖栨墦鍗版晥鏋�  
+  // 渚嬪锛屽彲浠ユ坊鍔犱竴涓殣钘忕殑鎵撳嵃鏍峰紡琛�  
+  window.print();  
+};  
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
-const handleMessage = (data) => {
-// 杩涚倝涓�
-  if(data.intoGlass2!=null){
-    adjustedRects2.value =  data.intoGlass2[0].map(rect => {  
-        isActive: false
-        const scaleFactor =  794.67/5087; 
+const handleMessage = (data) => {  
+  if (data.intoGlass2 && data.intoGlass2.length > 0) {  
+    const newRects = data.intoGlass2[0].map(rect => {  
+      const scaleFactor =  794.67/5087; 
         let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
         let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -59,15 +118,20 @@
         height: adjustedHeight,  
         widtha: rect.width, 
         heighta: rect.height,
-      };  
-      });
-      }else{
-        adjustedRects1.value = ''
       }
-  if(data.intoGlass!=null){
-      adjustedRects1.value =  data.intoGlass[0].map(rect => {  
-        isActive: false
-        const scaleFactor =  794.67/5087; 
+    });  
+    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
+    adjustedRects2.value = adjustedRects2.value.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
+    }).concat(newRects.filter(r => !adjustedRects2.value.some(o => o.glassId === r.glassId)));  
+  }
+  if (data.intoGlass && data.intoGlass.length > 0) {  
+    const newRects = data.intoGlass[0].map(rect => {  
+      const scaleFactor =  794.67/5087; 
       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
       let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -98,16 +162,20 @@
         height: adjustedHeight,  
         widtha: rect.width, 
         heighta: rect.height,
-      };  
-      });
-      }else{
-        adjustedRects2.value = ''
       }
-  // 杩涚倝鍓�
-  if(data.waitingGlass!=null){
-    adjustedRectsa.value = data.waitingGlass[0].map(rect => {  
-        isActive: false
-        const scaleFactor =  1621.78/5190; 
+    });  
+    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
+    adjustedRects1.value = adjustedRects1.value.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
+    }).concat(newRects.filter(r => !adjustedRects1.value.some(o => o.glassId === r.glassId)));  
+  }
+  if (data.waitingGlass && data.waitingGlass.length > 0) {  
+    const newRects = data.waitingGlass[0].map(rect => {  
+      const scaleFactor =  1621.78/5190; 
   let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
   let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -138,16 +206,20 @@
     height: adjustedHeight,  
     widtha: rect.width, 
     heighta: rect.height,
-  };  
-});
-  }else{
-        adjustedRectsa.value = ''
-      }
-    // 宸插嚭鐐�
-  if(data.outGlass!=null){
-    adjustedRectsb.value = data.outGlass[0].map(rect => {  
-        isActive: false
-        const scaleFactor =  1621.78/5190; 
+  }
+    });  
+    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
+    adjustedRectsa.value = adjustedRectsa.value.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
+    }).concat(newRects.filter(r => !adjustedRectsa.value.some(o => o.glassId === r.glassId)));  
+  }
+  if (data.outGlass && data.outGlass.length > 0) {  
+    const newRects = data.outGlass[0].map(rect => {  
+      const scaleFactor =  1621.78/5190; 
       const scaleFactory =  550/2800; 
       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY;
   let newX = rect.yCoordinate; 
@@ -181,12 +253,18 @@
         height: adjustedHeight,  
         widtha: rect.width, 
         heighta: rect.height,
-  };  
-});
-  }else{
-        adjustedRectsb.value = ''
-      }
-};
+  }
+    });  
+    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
+    adjustedRectsb.value = adjustedRectsb.value.map(oldRect => {  
+      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
+      if (newRect) {  
+        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
+      }  
+      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
+    }).concat(newRects.filter(r => !adjustedRectsb.value.some(o => o.glassId === r.glassId)));  
+  }
+}; 
 onMounted(() => {
   initializeWebSocket(socketUrl, handleMessage);
 });
@@ -219,70 +297,68 @@
       return '#911005';  
   }  
 }
-// if (adjustedRectsb[0].engineerId != null) {
-//     engineerIdDisplayb = adjustedRectsb[0].engineerId
-//   }
-//   if (adjustedRectsa[0].engineerId != null) {
-//     engineerIdDisplaya = adjustedRectsa[0].engineerId
-//   }
-//   if (adjustedRects2[0].engineerId != null) {
-//     engineerIdDisplay2 = adjustedRects2[0].engineerId
-//   }
-//   if (adjustedRects[0].engineerId != null) {
-//     engineerIdDisplay = adjustedRects[0].engineerId
-//   }
-function showDialog1(rect) {  
+function showDialog1(rect) {
+  const index = adjustedRects1.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRects1.value[index].isActive = true;  
+  }  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blind.value = true;  
-  adjustedRects1.value = adjustedRects1.value.map(rect =>  
-    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
-  ); 
+  blind1.value = true;  
 } 
-function showDialog2(rect) {  
+function showDialog2(rect) {
+  const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRects2.value[index].isActive = true;  
+  }  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blind.value = true;  
-  adjustedRects2.value = adjustedRects2.value.map(rect =>  
-    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
-  ); 
+  blind2.value = true;  
 } 
-function showDialoga(rect) {  
+function showDialoga(rect) {
+  const index = adjustedRectsa.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRectsa.value[index].isActive = true;  
+  }  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blind.value = true;  
-  adjustedRectsa.value = adjustedRectsa.value.map(rect =>  
-    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
-  ); 
+  blinda.value = true;  
 } 
-function showDialogb(rect) {  
+function showDialogb(rect) {
+  const index = adjustedRectsb.value.findIndex(r => r.glassId === rect.glassId);  
+  if (index !== -1) {  
+    adjustedRectsb.value[index].isActive = true;  
+  }  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blind.value = true;  
-  adjustedRectsb.value = adjustedRectsb.value.map(rect =>  
-    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
-  ); 
+  blindb.value = true;  
 } 
-const handleDialogClose = () => {  
-  adjustedRects1.value = adjustedRects1.value.map(rect => ({  
-    ...rect,  
-    isActive: false  
-  }));  
-  // adjustedRects2.value = adjustedRects2.value.map(rect => ({  
-  //   ...rect,  
-  //   isActive: false  
-  // }));  
-  // adjustedRectsa.value = adjustedRectsa.value.map(rect => ({  
-  //   ...rect,  
-  //   isActive: false  
-  // }));  
-  adjustedRectsb.value = adjustedRectsb.value.map(rect => ({  
-    ...rect,  
-    isActive: false  
-  }));  
-} 
+  const handleDialogClose1 = () => {  
+  adjustedRects1.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blind1.value = false; 
+};  
+  const handleDialogClose2 = () => {  
+  adjustedRects2.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blind2.value = false; 
+};  
+  const handleDialogClosea = () => {  
+  adjustedRectsa.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blinda.value = false; 
+};  
+  const handleDialogCloseb = () => {  
+  adjustedRectsb.value.forEach(rect => {  
+    rect.isActive = false;  
+  });  
+  blindb.value = false; 
+};  
 // 鐮存崯
-const handleDamage = async () => {
+const handleDamage1 = async () => {
   try  {
   const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
     glassId: currentGlassId.value,
@@ -293,7 +369,76 @@
     })
     if (response.code == 200) {
       ElMessage.success(response.message);
-      blind.value = false;
+      blind1.value = false;
+      updateRectColors();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+const handleDamage2 = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    // temperingFeedSequence: currenttemperingFeedSequence.value,
+    line: 4001,
+    status: 2,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blind2.value = false;
+      updateRectColors();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+const handleDamagea = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    // temperingFeedSequence: currenttemperingFeedSequence.value,
+    line: 4001,
+    status: 2,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blinda.value = false;
+      updateRectColors();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+const handleDamageb = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    // temperingFeedSequence: currenttemperingFeedSequence.value,
+    line: 4001,
+    status: 2,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      blindb.value = false;
       updateRectColors();
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -312,9 +457,10 @@
 </script>
 <template>
   <div style="margin-top: 10px;">
-     <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >{{ $t('processCard.beforefurnace') }}</el-button>
-     <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">{{ $t('processCard.intofurnace') }}</el-button>
-    <el-button  id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false">{{ $t('processCard.outfurnace') }}</el-button>
+     <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;dialogFormVisiblec = false;" >{{ $t('processCard.beforefurnace') }}</el-button>
+     <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;dialogFormVisiblec = false;">{{ $t('processCard.intofurnace') }}</el-button>
+    <el-button  id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false;dialogFormVisiblec = false;">{{ $t('processCard.outfurnace') }}</el-button>
+    <el-button  id="searchButton" type="info" @click="dialogFormVisiblec = true;dialogFormVisibleb = false;dialogFormVisible = false;dialogFormVisiblea = false">{{ $t('processCard.print') }}</el-button>
 <div v-if="dialogFormVisible" >
     <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
 <div style="width: 49%;float: left;background-color: #f4f4f5;height: 550px;">
@@ -430,12 +576,72 @@
    </div>
    </el-card>
 </div>
- 
-<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
-        <el-button type="warning" plain :icon="Delete" @click="handleDamage"  style="width: 140px;margin-left: 10px;">
+<div v-if="dialogFormVisiblec">
+  <!-- 鎵撳嵃 -->
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+    <div style="display: flex; flex-direction: row; align-items: center; margin-top: 5px;margin-left: 10px;">  
+    <el-input :placeholder="$t('processCard.projectnumber')" v-model="engineerId" autocomplete="off" style="width: 300px;"/>
+    <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('processCard.inquire') }}</el-button>
+    <el-button type="info" style="margin-left: 10px;" @click="printing()">{{ $t('processCard.printing') }}</el-button>
+  </div>
+
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+    <el-table
+    height="350"
+     ref="table" 
+     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+      :data="tableData"
+    >
+      <el-table-column prop="engineerId" :label="$t('processCard.project')" width="200" align="center"/>
+      <el-table-column prop="workingProcedure" :label="$t('processCard.awayprocess')" align="center"/>
+      <el-table-column prop="deviceName" :label="$t('processCard.awayequipment')" align="center"/>
+      <el-table-column prop="teamsGroupsName" :label="$t('processCard.awayteam')" align="center"/>
+    </el-table>
+      </div>
+      </el-card>
+   </el-card>
+</div>
+<el-dialog v-model="blind1" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose1">
+        <el-button type="warning" plain :icon="Delete" @click="handleDamage1"  style="width: 140px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+  </el-dialog>  
+<el-dialog v-model="blind2" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose2">
+        <el-button type="warning" plain :icon="Delete" @click="handleDamage2"  style="width: 140px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+  </el-dialog>  
+<el-dialog v-model="blinda" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClosea">
+        <el-button type="warning" plain :icon="Delete" @click="handleDamagea"  style="width: 140px;margin-left: 10px;">
+          {{ $t('order.dilapidation') }}
+        </el-button>
+  </el-dialog>  
+<el-dialog v-model="blindb" top="30vh" width="15%" style="text-align: center;" @close="handleDialogCloseb">
+        <el-button type="warning" plain :icon="Delete" @click="handleDamageb"  style="width: 140px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
   </el-dialog> 
+  <el-dialog  
+      v-model="dialogVisible"
+      width="100%" 
+      :title="$t('processCard.glasstakeout')"
+      top="0vh"
+      >  
+      <el-table  
+        :data="tableData"  
+        style="width: 100%;height: 860px"  
+      >  
+      <el-table-column prop="flowCardId" :label="$t('processCard.flowcard')" width="140" align="center"/>
+      <el-table-column prop="layer" :label="$t('processCard.layer')" align="center" width="80"/>
+      <el-table-column prop="engineerId" :label="$t('processCard.project')" align="center" width="110"/>
+      <el-table-column prop="temperingLayoutId" :label="$t('processCard.temperinglayout')" align="center" width="80"/>
+      <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center" width="80"/>
+      <el-table-column prop="width" :label="$t('processCard.width')" align="center" width="80"/>
+      <el-table-column prop="height" :label="$t('processCard.height')" align="center" width="80"/>
+      <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center" width="80"/>
+      </el-table>  
+    </el-dialog>  
   </div>
 </template>
 <style scoped>
@@ -509,7 +715,6 @@
 } 
 #rect {  
   position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */  
-  /* 鍏朵粬鏍峰紡 */  
 }  
 .centered-text {
   /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */  
diff --git a/UI-Project/src/views/largescreen/largescreen.vue b/UI-Project/src/views/largescreen/largescreen.vue
index 0ac8dc0..5270e48 100644
--- a/UI-Project/src/views/largescreen/largescreen.vue
+++ b/UI-Project/src/views/largescreen/largescreen.vue
@@ -1,6 +1,6 @@
 <template>  
   <el-card style="flex: 1;margin-left: 1px;margin-top: 10px;margin-right: 1px;" v-loading="loading">
-    <el-scrollbar height="600px">
+    <el-scrollbar height="800px">
 <div id="top" style="height: 150px;display: flex;">  
   <div class="echarts-container">
   <div v-for="(processData, index) in processesData" :key="index" class="echarts-item">
@@ -46,32 +46,9 @@
   <div  class="moving-rect xiapianji5" v-show="xiapian5"></div>
   <div  class="moving-rect xiapianji6" v-show="xiapian6"></div>
 </div>
-<!-- <div class="parter" style="margin-top: 10px;margin-left: 150px; height: 240px;width: 1000px;">
-    <img src="../../assets/dpxsa.png" style="margin-left: -10px; width: 100%;height: 100%;" alt="Your Image">
-    <div class="moving-rect vertical"></div>
-    <div class="moving-rect all"></div>
-    <div class="moving-rect horizontal"></div>
-    <div class="moving-rect xiao"></div>
-    <div class="moving-rect zhan"></div>
-    <div class="moving-rect tu"></div>
-    <div class="moving-rect zi"></div>
-    <div class="moving-rect xia"></div>
-    <div class="moving-rect zan"></div>
-    <div class="moving-rect fa"></div>
-    <div class="moving-rect hua"></div>
-    <div class="moving-rect shui"></div>
-</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"
-      @selection-change="handleSelectionChange"
-      :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-        <el-table-column prop="projectNo" align="center" :label="$t('large.projectnumber')" min-width="50" />
-        <el-table-column prop="projectName" align="center" :label="$t('large.projectname')" min-width="50" />
-      </el-table>
-</div>  -->
 </div>
-<div id="bottom" style="margin-top: 10px;height: 190px;background-color: #911005;">
-<el-table height="190" ref="table"
+<div id="bottom" style="margin-top: 10px;height: 190px;">
+<el-table height="390" ref="table"
       @selection-change="handleSelectionChange"
       :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
         <el-table-column prop="orderId" align="center" :label="$t('large.orderId')" min-width="50" />
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
index d096488..fc36b35 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -3,6 +3,7 @@
 
 import cn.hutool.core.date.DateTime;
 import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.DamagePrint;
 import com.mes.damage.service.DamageService;
 import com.mes.utils.Result;
 import io.swagger.annotations.Api;
@@ -62,6 +63,18 @@
         damageService.insertDamage(damage);
         return Result.build(200,"鏂板鎴愬姛",1);
     }
+    @ApiOperation("鎷胯蛋鏁版嵁鏌ヨ")
+    @PostMapping("/selectDamagePrint")
+    public Result selectDamagePrint(@RequestBody Damage damage) {
+        List<Damage> damage2=damageService.selectDamagePrint(damage);
+        return Result.build(200,"鏌ヨ鎴愬姛",damage2);
+    }
+    @ApiOperation("鎷胯蛋鎵撳嵃鏌ヨ")
+    @PostMapping("/selectDamagePrintDetails")
+    public Result selectDamagePrintDetails(@RequestBody Damage damage) {
+        List<DamagePrint> damage2=damageService.selectDamagePrintDetails(damage);
+        return Result.build(200,"鏌ヨ鎴愬姛",damage2);
+    }
 
 }
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
index a993bd7..a3782b3 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
@@ -1,6 +1,7 @@
 package com.mes.damage.mapper;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.damage.entity.Damage;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -13,6 +14,6 @@
  * @since 2024-06-13
  */
 @DS("hangzhoumes")
-public interface DamageMapper extends BaseMapper<Damage> {
+public interface DamageMapper extends MPJBaseMapper<Damage> {
 
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index 05d6b84..528b941 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -1,9 +1,12 @@
 package com.mes.damage.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
 import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.DamagePrint;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,7 +16,7 @@
  * @author wu
  * @since 2024-06-13
  */
-public interface DamageService extends IService<Damage> {
+public interface DamageService extends MPJBaseService<Damage> {
 
     List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
 
@@ -32,4 +35,8 @@
      * @param damageList
      */
     void batchInsertDamage(List<Damage> damageList);
+
+    List<Damage> selectDamagePrint(Damage damage);
+
+    List<DamagePrint> selectDamagePrintDetails(Damage damage);
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index 8f87d5a..c4debd3 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -1,8 +1,12 @@
 package com.mes.damage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.query.MPJQueryWrapper;
 import com.mes.damage.entity.Damage;
+import com.mes.damage.entity.DamagePrint;
 import com.mes.damage.mapper.DamageMapper;
 import com.mes.damage.service.DamageService;
 import com.mes.glassinfo.entity.GlassInfo;
@@ -10,11 +14,14 @@
 import com.mes.work_assignment.entity.WorkAssignment;
 import com.mes.work_assignment.mapper.WorkAssignmentMapper;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -28,12 +35,14 @@
  * @since 2024-06-13
  */
 @Service
-public class DamageServiceImpl extends ServiceImpl<DamageMapper, Damage> implements DamageService {
+public class DamageServiceImpl extends MPJBaseServiceImpl<DamageMapper, Damage> implements DamageService {
 
     @Resource
     GlassInfoMapper glassInfoMapper;
     @Resource
     WorkAssignmentMapper workAssignmentMapper;
+    @Autowired
+    private DamageMapper damageMapper;
 
     /**
      * 鏌ヨ鎶ュ伐淇℃伅
@@ -136,4 +145,29 @@
         }
         this.saveBatch(damageList);
     }
+
+    @Override
+    public List<Damage> selectDamagePrint(Damage damage) {
+        QueryWrapper<Damage> wrapper = new QueryWrapper<>();
+        wrapper.select("working_procedure,engineer_id,teams_groups_name,device_name,count(glass_id)as glass_id")
+                .eq("type",damage.getType())
+                .eq("working_procedure",damage.getWorkingProcedure())
+                .groupBy("working_procedure,engineer_id,teams_groups_name,device_name");
+                  if (damage.getEngineerId() != null) {
+                      wrapper.eq("engineer_id", damage.getEngineerId());
+                  }
+        return this.list(wrapper);
+    }
+
+    @Override
+    public List<DamagePrint> selectDamagePrintDetails(Damage damage) {
+        List<DamagePrint> listDamage=damageMapper.selectJoinList(DamagePrint.class,new MPJQueryWrapper<Damage>()
+                .select("b.flow_card_id,b.layer,t.engineer_id,b.tempering_layout_id,b.tempering_feed_sequence,t.glass_id,b.width,b.height,b.thickness")
+                .leftJoin("glass_info as b  on t.glass_id=b.glass_id")
+                .eq("t.working_procedure",damage.getWorkingProcedure())
+                .eq("t.type",damage.getType())
+                .eq("t.engineer_id",damage.getEngineerId())
+        );
+        return listDamage;
+    }
 }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
index ea60109..b4a5334 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
@@ -12,6 +12,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -33,14 +36,28 @@
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
      */
 
-    @Scheduled(fixedDelay = 2000)
+    @Scheduled(fixedDelay = 10000)
     public void screenHome() {
         JSONObject jsonObject = new JSONObject();
         Reportingdamage reportingdamage = new Reportingdamage();
-        reportingdamage.setReportingWorkTime("2024-05-11");
+        //reportingdamage.setReportingWorkTime("2024-05-11");
+        // 鑾峰彇褰撳墠鏃ユ湡
+        LocalDate today = LocalDate.now();
+        // 璁$畻鏈�杩戜竷澶╃殑寮�濮嬫棩鏈�
+        LocalDate startOfPeriod = today.minusDays(6); // 7澶╃殑鑼冨洿鍖呮嫭浠婂ぉ锛屾墍浠ュ噺鍘�6澶�
+        // 鏈�杩戜竷澶╃殑缁撴潫鏃ユ湡灏辨槸浠婂ぉ
+        LocalDate endOfPeriod = today;
+        // 鏍煎紡鍖栨棩鏈熶负瀛楃涓�
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String startOfPeriodStr = startOfPeriod.format(formatter);
+        String endOfPeriodStr = endOfPeriod.format(formatter);
+        // 璁剧疆涓烘渶杩戜竷澶╃殑鏃堕棿鑼冨洿
+        reportingdamage.setReportingWorkTime(startOfPeriodStr + " to " + endOfPeriodStr);
+        //reportingdamage.setReportingWorkTime(startOfPeriodStr + " to " + endOfPeriodStr);
         //鎵囧舰鍥惧悇璁惧鐨勫姞宸ョ牬鎹熸暟閲�
         List<Reportingdamage> device = reportingWorkService.selectDamage(reportingdamage);
         jsonObject.append("device", device);
+
         //鑾峰彇娆$牬鏈ˉ淇℃伅
         List<AwaitingRepair> awaitingRepairs = reportingWorkService.selectAwaitingRepair();
         jsonObject.append("awaitingRepairs", awaitingRepairs);
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
index c8c24c9..5a02460 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
 
 spring:
   profiles:
-    active: cz
+    active: prod
   application:
     name: unLoadGlass
 

--
Gitblit v1.8.0