From 31a3c52f16927cb0a37d4a4fefb1ab2442e4cbf9 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期二, 22 十月 2024 16:00:51 +0800
Subject: [PATCH] 钢化完整版图后端新增字段,更改数据结构,前端页面获取数据更改,新增装载率

---
 UI-Project/src/views/GlassStorage/rawfilmstorage.vue |  349 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 189 insertions(+), 160 deletions(-)

diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
index bfdf487..a95b7f1 100644
--- a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -17,82 +17,81 @@
 const dialogFormVisiblea = ref(false)
 const dialogFormVisibleb = ref(false)
 const dialogFormVisiblec = ref(false)
-const timeRange = ref(["2022-01-01", "2025-01-01"])
-let webSocket: WebSocket | null = null;  
+const timeRange = ref(["2022-01-01 00:00:00", "2025-01-01 00:00:00"])
+const selectValuesa = reactive([]);
+  const patternWidth = ref('');
+  const patternHeight = ref('');
+  const patternThickness = ref('');
+  const filmsId = ref('');
+  const remainQuantity = ref('');
+  const slot = ref('');
+  let webSocket: WebSocket | null = null;  
 const value = ref('')
 const options = [
   {
-    value: t('film.warehousing1'),
+    value: 1,
     label: t('film.warehousing1'),
   },
   {
-    value: t('film.warehousing2'),
+    value: 2,
     label: t('film.warehousing2'),
   }
 ]
 const report = ref({
-  enableType: '',
-  enableState: '',
+  taskType: '',
+  taskState: '',
 });
+request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest",{
+      beginDate: "2022-01-01 00:00:00",
+      endDate: "2025-01-01 00:00:00",
+}).then((response) => {
+          if (response.code == 200) {
+            tableDataa.value = response.data
+            console.log(tableDataa.value);
+          } else {
+          ElMessage.warning(response.msg)
+        
+          }
+          });
 onMounted(() => {
-    connectWebSocket();  
-    // socket = initializeWebSocket(socketUrl, handleMessage);
+  // closeWebSocket();
+  debugger
+  // console.log("--------------webSocket")
+    socket = initializeWebSocket(socketUrl, handleMessage);
 });
-onUnmounted(() => {  
-  if (webSocket) {  
-    webSocket.close();  
-  }  
-});
-  // onUnmounted(() => {
-  //   if (socket) {
-  //   closeWebSocket(socket);
-  //   }
-  //   });
+ 
 let socket = null;
-const connectWebSocket = () => {  
-  if (!webSocket) {  
-    const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
-    webSocket = new WebSocket(socketUrl);  
-    webSocket.onmessage = (event) => {  
-      const data = JSON.parse(event.data);
-       if(data.tasks !=null){
-        tableDataa.value = data.tasks[0]
-        console.log(data.tasks[0]);
-        
-        }
-        if(data.rack !=null){
-        tableDatab.value = data.rack[0]
-        }
-    //   const data = JSON.parse(event.data);  
-    //   const scaleFactor =  1621.78/6000; 
-    //   const scaleFactory =  750/3300; 
-    //   if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
-    //   const newRects = data.currentCutTerritory[0].map(rect => {  
-    //     const existingRect = adjustedRects.value.find(r => r.glass_id === rect.glass_id);  
-        
-    
-    //   });
-    //   adjustedRects.value = newRects;  
-    //  } 
-    };  
+const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+const handleMessage = (data) => {
+  if(data.tasks !=null){
+  tableDataa.value = data.tasks[0]
   }
-};  
-// const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
-// const handleMessage = (data) => {
-//   // if(data.tasks!=null){
-//   // tableData.splice(0, tableData.length, ...data.prioritylist[0]);
-//   // }
-//   if(data.tasks !=null){
-//   tableDataa.value = data.tasks[0]
-//   console.log(data.tasks[0]);
-  
-//   }
-//   if(data.rack !=null){
-//   tableDatab.value = data.rack[0]
-//   }
-// };
+  if(data.rawStationDetailsList !=null){
+  tableDatab.value = data.rawStationDetailsList[0]
+  }
+};
+// 淇敼鏁伴噺
+const handleConfirmb = async () => {
+  let slotId = window.localStorage.getItem('slotId')
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
+      slotId: slotId,
+      remainQuantity: remainQuantity.value,
+  }
+  ); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
   // 鍒犻櫎 
- const opena = async(row) => {  
+ const deleteWarehousing = async(row) => {  
   try {
     const confirmResult = await ElMessageBox.confirm(  
       t('film.dedelete'), 
@@ -104,7 +103,10 @@
       } 
     );
     if (confirmResult === 'confirm') {
-      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
+      
+    var url="/glassStorage/rawGlassStorageDetails/deleteWarehousing?slotId="+row.slotId;
+    const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId])
     if (response.code === 200) {
       ElMessage.success(response.message);
       } else {
@@ -115,30 +117,7 @@
     console.error('鍙戠敓閿欒:', error);  
   }  
 };  
-  // 绂佺敤 
-  const openb = async(row) => {  
-  try {
-    const confirmResult = await ElMessageBox.confirm(  
-      t('film.dedisable'), 
-      t('productStock.prompt'),  
-      {  
-        confirmButtonText: t('productStock.yes'), 
-        cancelButtonText: t('productStock.cancel'),
-        type: 'warning',  
-      } 
-    );
-    if (confirmResult === 'confirm') {
-      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
-    if (response.code === 200) {
-      ElMessage.success(response.message);
-      } else {
-      ElMessage.error(response.msg);
-      }  
-    }  
-  } catch (error) {
-    console.error('鍙戠敓閿欒:', error);  
-  }  
-}; 
+ 
   // 鍑哄簱 
   const openc = async(row) => {  
   try {
@@ -152,12 +131,14 @@
       } 
     );
     if (confirmResult === 'confirm') {
-      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
+      var url="/glassStorage/rawGlassStorageDetails/outWarehousing?slotId="+row.slotId;
+      const response = await request.post(url)
+      // const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId])
     if (response.code === 200) {
       ElMessage.success(response.message);
       } else {
       ElMessage.error(response.msg);
-      }  
+      }   
     }  
   } catch (error) {
     console.error('鍙戠敓閿欒:', error);  
@@ -165,50 +146,86 @@
 }; 
 // 鏌ヨ鏁版嵁
 const selectReportData = async () => {
-  const response = await request.post("/glassStorage/raw_glass_storage_task/selectRawglasstask", {
-    createTime: timeRange.value[0],
-    patternQuantity: timeRange.value[1],
-    enableType: report.value.enableType,
-    enableState: report.value.enableState
+  let celllist=[]
+  let stateList=[]
+  if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
+    if(selectValuesa[0]!=""){
+      celllist=[selectValuesa[0]];
+    }
+  }
+  if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
+    if(selectValuesa[1]!=""){
+      stateList=[selectValuesa[1]];
+    }
+  }
+  const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
+    beginDate: timeRange.value[0],
+    endDate: timeRange.value[1],
+    taskState: stateList,
+    taskType: celllist
   })
   if (response.code === 200) {
-    tableDataa.value = response.data;
+    // tableDataa.value = response.data;
     ElMessage.success(response.message);
-    if (webSocket) {  
-        webSocket.close();  
-        webSocket = null;
-      }  
-  } else {
-    connectWebSocket();
+  } 
+  else {
     ElMessage.error(response.message);
   }
 };
+// 鍏ュ簱 
+const handleConfirma = async () => {
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternWarehousing', {
+      patternWidth: patternWidth.value,
+      patternHeight: patternHeight.value,
+      patternThickness: patternThickness.value,
+      filmsId: filmsId.value,
+      remainQuantity: remainQuantity.value,
+      slotId: slot.value,
+    }); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibleb.value = false;
+      patternWidth.value = '';
+      patternHeight.value = '';
+      patternThickness.value = '';
+      filmsId.value = '';
+      remainQuantity.value = '';
+      slot.value = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
 // 鏄惁绂佺敤
-const toggleEnableState = async (row: any) => {  
+const toggleEnableState = async (row: any) => {
   if (!row.deviceId) {  
     ElMessage.error(t('basicData.updatanull'));  
     return;
   }  
-  const newState = row.enableState === 1 ? 0 : 1;  
-  try {  
-    // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��  
-    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateEnableState', { deviceId: row.deviceId, enableState: newState });  
+  const newState = row.state === 1 ? 0 : 1;
+  try {
+    var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.deviceId + "&state=" + newState;
+    const response = await request.post(url)
     if (response.code === 200) {  
       ElMessage.success(response.message);  
-      row.enableState = newState;  
+      row.state = newState;  
     } else {  
-      ElMessage.error(response.message);  
-    }  
-  } catch (error) {  
-    // 澶勭悊璇锋眰閿欒  
-    ElMessage.error(t('basicData.glassnull'));   
-  }  
-}; 
+      ElMessage.error(response.message);
+    }
+  row.state = newState;
+} catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
+  }
+};
 const handleEdit = (row) => {
+  window.localStorage.setItem('slotId', row.slotId)
   dialogFormVisiblec.value = true;
 };
-function getStatusType1(enableType) {  
-switch (enableType) {  
+function getStatusType1(taskType) {  
+switch (taskType) {  
   case 1:  
     return 'info';  
   case 2:  
@@ -217,8 +234,8 @@
     return 'success';  
 }  
 }
-function getStatusText1(enableType) {  
-switch (enableType) {
+function getStatusText1(taskType) {  
+switch (taskType) {
   case 1:  
     return t('film.stocke');//鍏ュ簱
   case 2:  
@@ -227,8 +244,8 @@
   return t('film.dispatch');//璋冨害
 }  
 }
-function getStatusType2(enableState) {  
-switch (enableState) {  
+function getStatusType2(taskState) {  
+switch (taskState) {  
   case 1:  
     return 'info';  
   case 2:  
@@ -237,8 +254,8 @@
     return 'success';  
 }  
 }
-function getStatusText2(enableState) {  
-switch (enableState) {
+function getStatusText2(taskState) {  
+switch (taskState) {
   case 1:  
     return t('film.built');//鏂板缓
   case 2:  
@@ -247,6 +264,11 @@
   return t('film.finish');//瀹屾垚
 }  
 }
+// onUnmounted(() => {
+//     if (socket) {
+//     closeWebSocket(socket);
+//     }
+//     });
 onBeforeUnmount(() => {
   closeWebSocket();
 }); 
@@ -256,14 +278,18 @@
   <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">  
     <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisiblea = true">{{ $t('film.mes') }}</el-button>
   <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('film.warehousing') }}</el-button>
-    <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
-      :start-placeholder="$t('film.starttime')" :end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
-    <el-select v-model="report.enableType" clearable :placeholder="$t('film.taskstatus')" style="margin-left: 10px;" >
+    <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="datetimerange"
+        format="YYYY/MM/DD HH:mm:ss"  
+        value-format="YYYY-MM-DD HH:mm:ss"
+        :start-placeholder="$t('film.starttime')" 
+        :end-placeholder="$t('film.endtime')" 
+        :default-time="defaultTime" />
+    <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-left: 10px;" >
       <el-option :label="$t('film.built')" value="1"></el-option>
       <el-option :label="$t('film.execution')" value="2"></el-option>
       <el-option :label="$t('film.finish')" value="3"></el-option>
     </el-select>
-    <el-select v-model="report.enableState" clearable :placeholder="$t('film.tasktype')" style="margin-left: 10px;" >
+    <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('film.tasktype')" style="margin-left: 10px;" >
       <el-option :label="$t('film.stocke')" value="1"></el-option>
       <el-option :label="$t('film.outbound')" value="2"></el-option>
       <el-option :label="$t('film.dispatch')" value="3"></el-option>
@@ -274,29 +300,29 @@
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
         <el-table height="300" ref="table"
         :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="enableId" align="center" :label="$t('film.enableid')"/>
+          <el-table-column prop="id" align="center" :label="$t('film.enableid')"/>
           <el-table-column prop="originateSlot" align="center" :label="$t('film.originateslot')"/>
           <el-table-column prop="endSlot" align="center" :label="$t('film.endslot')"/>
           <el-table-column prop="patternQuantity" align="center" :label="$t('film.patternquantity')"/>
           <el-table-column
           align="center"
           :label="$t('film.enabletype')"
-          prop="enableType"
+          prop="taskType"
         >
         <template #default="scope">  
-      <el-tag :type="getStatusType1(scope.row.enableType)">  
-        {{ getStatusText1(scope.row.enableType) }}
+      <el-tag :type="getStatusType1(scope.row.taskType)">  
+        {{ getStatusText1(scope.row.taskType) }}
       </el-tag>  
     </template> 
         </el-table-column>
         <el-table-column
           align="center"
-          :label="$t('film.enablestate')"
-          prop="enableState"
+          :label="$t('film.taskstatus')"
+          prop="taskState"
         >
         <template #default="scope">  
-      <el-tag :type="getStatusType2(scope.row.enableState)">  
-        {{ getStatusText2(scope.row.enableState) }}
+      <el-tag :type="getStatusType2(scope.row.taskState)">  
+        {{ getStatusText2(scope.row.taskState) }}
       </el-tag>  
     </template> 
         </el-table-column>
@@ -313,6 +339,7 @@
     <el-table  ref="table" style="margin-top: 20px;height: 700px;"
         :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80"/>
+          <el-table-column prop="slotId" fixed align="center" :label="$t('film.slot')" min-width="80"/>
           <el-table-column prop="patternWidth" align="center" :label="$t('film.width')"  min-width="80" />
           <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
           <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
@@ -322,36 +349,36 @@
           align="center"
             :label="$t('film.enablestate')"
             min-width="80"
-            prop="enablestate"
+            prop="state"
           >
           <template #default="scope">  
           <el-tag  
-            :type="scope.row.enableState == 1 ? 'success' : 'danger'"  
+            :type="scope.row.state == 1 ? 'success' : 'danger'"  
             @click="toggleEnableState(scope.row)"  
             >  
-            {{ scope.row.enableState == 1 ? $t('film.start') : $t('film.disable')}}  
+            {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable')}}  
           </el-tag>  
         </template> 
           </el-table-column>
           <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
             <template #default="scope">
               <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
-              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('film.delete') }}</el-button>
+              <el-button size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button>
               <el-button size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
             </template>
         </el-table-column>
         </el-table>
 </el-dialog>
-<el-dialog v-model="dialogFormVisibleb" top="15vh" width="60%">
-  <div style="margin-top: 10px;margin-bottom: 10px;">
-      <el-form size="mini" label-width="150px">
-      <el-form label-width="70vm" label-position="right">
-        <el-row >
+<el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('basicData.addglass')" >
+    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
+            <el-form  size="mini" label-width="150px">
+      <el-form label-width="100px" label-position="right">
+        <el-row style="margin-top: -15px;margin-bottom: -2px;">
           <el-col :span="6">
               <div id="dt" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inwidth')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
               </el-form-item>
               </div></div>
           </el-col>
@@ -359,7 +386,7 @@
             <div id="dta" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inheight')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
               </el-form-item></div>
               </div>
           </el-col>
@@ -369,14 +396,14 @@
               <div id="dt" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inthickness')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
           <el-col :span="9">
             <div id="dta" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.infilms')" v-model="number" autocomplete="off" />
+                <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
         </el-row>
@@ -384,24 +411,26 @@
           <el-col :span="6">
               <div id="dt" style="font-size: 15px;">
         <div>
-              <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
-                <el-input :placeholder="$t('film.inquantity')" v-model="number" autocomplete="off" />
+          <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
+                <el-input :placeholder="$t('film.inquantity')" v-model="remainQuantity" autocomplete="off" />
               </el-form-item></div></div>
           </el-col>
           <el-col :span="9">
             <div id="dta" style="font-size: 15px;">
         <div>
           <el-form-item :label="$t('film.inwarehousing')" :required="true" style="width: 17vw">
-            <el-select :placeholder="$t('film.selectwarehousing')">
-      <el-option
-        v-for="item in options"
-        :key="item.value"
-        :label="item.label"
-        :value="item.value"
-      />
+            <el-select 
+            :placeholder="$t('film.selectwarehousing')"
+             style="width: 270px"  
+             v-model="slot">
+               <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
           </el-select>
-              </el-form-item></div>
-              </div>
+              </el-form-item></div></div>
           </el-col>
         </el-row>
         </el-form>
@@ -409,26 +438,26 @@
           </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
+        <el-button type="primary" @click="handleConfirma">
           {{ $t('basicData.confirm') }}
         </el-button>
         <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
       </div>
     </template>
-</el-dialog>
+  </el-dialog>
 <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%">
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
       <el-form size="mini" label-width="100px">
         <el-form label-width="210px" label-position="right">
           <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 25vw">
-            <el-input v-model="workstationId" autocomplete="off" />
+            <el-input v-model="remainQuantity" autocomplete="off" />
           </el-form-item>
         </el-form>
       </el-form>
     </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
+        <el-button type="primary" @click="handleConfirmb">
           {{ $t('reportWork.sure') }}
         </el-button>
         <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>

--
Gitblit v1.8.0