From 3c4b340b58d0d0bdbc3db74b5721586dd964f86c Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 08 十一月 2024 14:49:29 +0800
Subject: [PATCH] 义乌上片后端接口及前端页面样式与调用

---
 UI-Project/config.js                                                                                                       |   12 
 UI-Project/src/views/Returns/returns.vue                                                                                   |  417 ++++---------
 hangzhoumesParent/gateway/src/main/resources/application.yml                                                               |    1 
 UI-Project/src/views/GlassStorage/rawfilmstorage.vue                                                                       |   20 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java |   11 
 UI-Project/src/lang/zh.js                                                                                                  |   42 
 UI-Project/src/utils/constants.js                                                                                          |    4 
 UI-Project/src/views/Returns/upreturns.vue                                                                                 |  559 ++++++++----------
 UI-Project/src/views/Returns/upreturns2.vue                                                                                |  601 +++++++++-----------
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java                |    4 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java          |    2 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java                  |    8 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java                             |    8 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java    |    4 
 14 files changed, 727 insertions(+), 966 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index 8801d0c..fe2c190 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,10 +1,10 @@
 export default {
-//  serverUrl: "10.153.19.150:88/api",
+    serverUrl: "10.153.19.150:88/api",
 //  serverUrl: "192.168.1.199:88/api",
- serverUrl: "127.0.0.1:88/api",
-  // serverUrl2: "10.153.19.150:88"
-  // serverUrl2: "192.168.1.199:88"
-    serverUrl2: "127.0.0.1:88"
+//  serverUrl: "127.0.0.1:88/api",
+    serverUrl2: "10.153.19.150:88"
+    // serverUrl2: "192.168.1.199:88"
+    // serverUrl2: "127.0.0.1:88"
 
-  //serverUrl:"res.abeim.cn"
+    //serverUrl:"res.abeim.cn"
 }
\ No newline at end of file
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 764f1f3..544e3c4 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -615,23 +615,29 @@
           station :'宸ヤ綅',
       },
       Mounting:{
-          previewproject :'閫夋嫨棰勮宸ョ▼',
-          loadinglinea :'涓婄墖绾�',
-          loadingline :'涓婄墖绾匡細',
-          inloadingline :'璇烽�夋嫨涓婄墖绾�',
-          oneloadingline :'涓�鍙蜂笂鐗囩嚎',
-          twoloadingline :'浜屽彿涓婄墖绾�',
-          waiting :'绛夊緟涓�',
-          setparameters :'璁剧疆鍙傛暟',
-          project :'宸ョ▼鍙�',
-          projecta :'宸ョ▼鍙凤細',
-          width :'鍘熺墖瀹�',
-          height :'鍘熺墖楂�',
-          thickness :'鍘熺墖鍘�',
-          projectnumber :'宸ョ▼鍘熺墖搴忓彿',
-          state :'鐘舵��',
-          createtime :'鍒涘缓鏃堕棿',
-          all :'鍏ㄩ��',
-   
+          previewproject: '閫夋嫨棰勮宸ョ▼',
+          loadinglinea: '涓婄墖绾�',
+          loadingline: '涓婄墖绾匡細',
+          inloadingline: '璇烽�夋嫨涓婄墖绾�',
+          oneloadingline: '涓�鍙蜂笂鐗囩嚎',
+          twoloadingline: '浜屽彿涓婄墖绾�',
+          waiting: '绛夊緟涓�',
+          pass: '閫氳繃',
+          setparameters: '璁剧疆鍙傛暟',
+          project: '宸ョ▼鍙�',
+          projecta: '宸ョ▼鍙凤細',
+          width: '鍘熺墖瀹�',
+          height: '鍘熺墖楂�',
+          thickness: '鍘熺墖鍘�',
+          projectnumber: '宸ョ▼鍘熺墖搴忓彿',
+          state: '鐘舵��',
+          createtime: '鍒涘缓鏃堕棿',
+          all: '鍏ㄩ��',
+          removalmethod: '璇烽�夋嫨闄よ啘鏂瑰紡',
+          removalmethoda: '闄よ啘鏂瑰紡锛�',
+          noremoval: '涓嶉櫎鑶�',
+          coarselyground: '绮楃(',
+          finegrinding: '绮剧(',
+
       }
   }
\ No newline at end of file
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index 69000bc..b551cfb 100644
--- a/UI-Project/src/utils/constants.js
+++ b/UI-Project/src/utils/constants.js
@@ -1,4 +1,4 @@
 //  export const WebSocketHost = "192.168.1.199";
-// export const WebSocketHost = "10.153.19.150";
-export const WebSocketHost = "127.0.0.1";
+export const WebSocketHost = "10.153.19.150";
+// export const WebSocketHost = "127.0.0.1";
 export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
index f81a1eb..900dc17 100644
--- a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -1,18 +1,16 @@
 <script lang="ts" setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
+import {onBeforeUnmount, onMounted, reactive, ref} from "vue";
 import {useRouter} from "vue-router"
-const router = useRouter()
-import type { TableColumnCtx } from 'element-plus'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { useI18n } from 'vue-i18n'
-import { WebSocketHost ,host} from '@/utils/constants'
+import {ElMessage, ElMessageBox} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+import {host, WebSocketHost} from '@/utils/constants'
 import request from "@/utils/request"
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+
+const router = useRouter()
 const tableDataa = ref([])
 const tableDatab = ref([])
-const { t } = useI18n()
+const {t} = useI18n()
 const add = ref(false)
 const dialogFormVisiblea = ref(false)
 const dialogFormVisibleb = ref(false)
@@ -59,7 +57,7 @@
           });
 onMounted(() => {
   // closeWebSocket();
-  debugger
+  // debugger  // 鏂偣
   // console.log("--------------webSocket")
     socket = initializeWebSocket(socketUrl, handleMessage);
 });
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 4610faf..cf28409 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -1,12 +1,14 @@
 <script lang="ts" setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
 import {useRouter} from "vue-router"
+import {ElMessage} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+import {host, WebSocketHost} from '@/utils/constants'
+import request from "@/utils/request"
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+
 const router = useRouter()
-import type { TableColumnCtx } from 'element-plus'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { useI18n } from 'vue-i18n'
-const { t } = useI18n()
+const {t} = useI18n()
 const dialogFormVisible = ref(false)
 const blind = ref(false)
 const blinda = ref(false)
@@ -30,48 +32,39 @@
 const number = ref('');
 const canSelectProject = ref(true);
 const canStartLoading = ref(false);
-import { WebSocketHost ,host} from '@/utils/constants'
-import request from "@/utils/request"
-const ida = ref(null); 
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
-const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
-const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
-const selectedValue = ref(''); // 褰撳墠閫変腑鐨勫  
-const selectedValuea = ref('');  
+const ida = ref(null);
+const selectedProjectNo = ref('');
+const selectedProjectNoa = ref('');
+const selectedValue = ref('');
+const selectedValuea = ref('');
 const selectedValueb = ref('');
-const selectedValuec = ref(''); 
-// const upstatus = ref('涓婄墖鏈烘墜鍔ㄧ姸鎬侊細'); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��  
+const selectedValuec = ref('');
 const upstatus = ref(t('basicData.machineaa'));
-const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�  
+const cuttingMachine = ref('');
 const cuttingMachineStatusColor = ref('#911005'); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊 
 const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊� 
-const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
-const selectOptions = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsa = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsb = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsc = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-  const tableDataa = ref([])
-  const tableData = reactive([]);
-  const fetchTableData = async () => {
+const options = ref<any[]>([]);
+const selectOptions = ref<Array<any>>([]);
+const selectOptionsa = ref<Array<any>>([]);
+const selectOptionsb = ref<Array<any>>([]);
+const selectOptionsc = ref<Array<any>>([]);
+const tableDataa = ref([])
+const tableData = reactive([]);
+const fetchTableData = async () => {
   try {
     const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
-    // 妫�鏌ュ搷搴旂姸鎬�
     if (response.code === 200) {
-      // 鏇存柊琛ㄦ牸鏁版嵁
       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
       tableData.splice(0, tableData.length, ...response.data);
-      // window.localStorage.setItem('engineeringId', response.data[0].engineeringId)
-      // 鑾峰彇鍞竴鍊�
-      const uniqueWidths = new Set(response.data.map(item => item.width));  
-      const uniqueHeights = new Set(response.data.map(item => item.height));  
-      const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));  
+      const uniqueWidths = new Set(response.data.map(item => item.width));
+      const uniqueHeights = new Set(response.data.map(item => item.height));
+      const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));
       const uniqueThicknesses = new Set(response.data.map(item => item.thickness));  
   
-      selectOptions.value = Array.from(uniqueWidths).map(width => ({ 
-      value: width, // 鍋囪杩欐槸浣犳兂瑕佷綔涓簐alue鐨勫睘鎬�  
-      label: width, // 鍋囪杩欐槸浣犳兂瑕佹樉绀虹殑label  
-    }));  
+      selectOptions.value = Array.from(uniqueWidths).map(width => ({
+        value: width,
+        label: width,
+      }));
       selectOptionsa.value = Array.from(uniqueHeights).map(height => ({ 
       value: height, 
       label: height, 
@@ -93,12 +86,12 @@
   }
 };
 const handlezhiban = () => {
-  dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  dialoglea.value = true;
   fetchFlowCardId(); 
 };
 const selectproject = () => {
-  dialogFormVisible.value = true; 
-  selectgong(); 
+  dialogFormVisible.value = true;
+  selectgong();
 };
 // 鍊肩彮淇℃伅
 const fetchFlowCardId = async () => {
@@ -110,14 +103,11 @@
     if (response.code == 200) {
       ElMessage.success(response.message);
       tableDatax.value = response.data;
-      console.log(tableDatax.value);
-      console
     } else {
       ElMessage.error(response.message);
     }
 }
 catch (error) {
-    // 澶勭悊閿欒
     console.error(error);
   }
 }
@@ -131,15 +121,15 @@
   }
 };
 onMounted(() => {
-  list('');  
+  list('');
   fetchOptions('');
   socket = initializeWebSocket(socketUrl, handleMessage);
 });
-  onUnmounted(() => {
-    if (socket) {
+onUnmounted(() => {
+  if (socket) {
     closeWebSocket(socket);
-    }
-    });
+  }
+});
 const list = async () => {  
   try {  
     const response = await request.get('/loadGlass/LoadGlass/list');  
@@ -166,30 +156,6 @@
     console.error('Error fetching options:', error);  
   }  
 }; 
-// 鍋囪杩欐槸鎮ㄧ殑鍝嶅簲澶勭悊鍑芥暟 
-// request.get("/loadGlass/LoadGlass/list").then((res) => {
-//       if (res.code == 200) {
-//           tableDataa.value = res.data
-//           if (tableDataa.value.length === 4) {
-//           if (tableDataa.value[0].patternHeight > 0) {
-//           flake.value = true;
-//           }
-//          if (tableDataa.value[1].patternHeight > 0) {
-//           flakea.value = true;
-//           } 
-//          if (tableDataa.value[2].patternHeight > 0) {
-//           flakeb.value = true;
-//           } 
-//          if (tableDataa.value[3].patternHeight > 0) {
-//           flakec.value = true;
-//           } 
-//            }
-//           } else {
-//           ElMessage.warning(res.message)
-//           // router.push("/login")
-//           }
-//           }); 
-//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
 const titleSelectJson = ref({
   processType: [],
 })
@@ -198,7 +164,6 @@
 })
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
-// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
   if(data.prioritylist!=null){
   tableData.splice(0, tableData.length, ...data.prioritylist[0]);
@@ -228,15 +193,11 @@
 const requestData = {  
   state: 100  
 };  
- 
- 
- 
- 
 const selectgong = async (queryString: string) => {
   try  {
     const response = await request.post('/loadGlass/optimizeProject/listByState',{
-      ...requestData,  
-      query: queryString
+      ...requestData,
+      projectNo: queryString
     })
     if (response.code == 200) {
       titleSelectJson.value.processType = response.data;
@@ -245,23 +206,20 @@
     }
 }
 catch (error) {
-    // 澶勭悊閿欒
     console.error(error);
   }
 }
-const fetchOptions = async (queryString: string) => {  
-  try {  
-    // 鍙戦�佽姹傚埌鍚庣鎺ュ彛  
-    const response = await request.post('/loadGlass/optimizeProject/listByState', {  
-      ...requestData,  
-      query: queryString // 灏嗘煡璇㈠瓧绗︿覆浣滀负鍙傛暟浼犻��  
-    });  
-    if (response.code == 200) {  
-    // titleSelectJson.value.processType = response.data;
-    console.log(response.data);
- 
-    } else {  
-      ElMessage.warning(response.data);  
+const fetchOptions = async (queryString: string) => {
+  try {
+    const response = await request.post('/loadGlass/optimizeProject/listByState', {
+      ...requestData,
+      query: queryString
+    });
+    if (response.code == 200) {
+      // titleSelectJson.value.processType = response.data;
+      console.log(response.data);
+    } else {
+      ElMessage.warning(response.data);
     }  
   } catch (error) {  
     console.error('Error fetching options:', error);  
@@ -271,8 +229,8 @@
 const handleInputChange = async (value: string) => {  
   if (value) {  
     await fetchOptions(value);  
-  } else {  
-    options.value = []; // 娓呯┖閫夐」鍒楄〃  
+  } else {
+    options.value = [];
   }  
 };  
   // 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�  
@@ -288,38 +246,27 @@
 });
 // 娣诲姞
 const handleBindRack = (row) => {
-  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
+  workstationId.value = row.workstationId;
   ida.value = row.id;
-  add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  add.value = true;
 };
 // 娣诲姞
-    const handleConfirm = async () => {
-      // console.log('id.value:', id.value);
-  if ((ida.value === 2 || ida.value === 4) && (parseInt(selectedValuea.value, 10) >= 2700 )) {  
+const handleConfirm = async () => {
+  if ((ida.value === 2 || ida.value === 4) && (parseInt(selectedValuea.value, 10) >= 2700)) {
     try {
-    const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
-      id: workstationId.value,
-      workstationId: workstationId.value,
-      patternHeight: selectedValuea.value,
-      patternWidth: selectedValue.value,
-      filmsId: selectedValueb.value,
-      patternThickness: selectedValuec.value,
-      number: number.value
-    }); 
-      // window.localStorage.setItem('workstationId', workstationId.value)
-      // window.localStorage.setItem('patternHeight', selectedValuea.value)
-      // window.localStorage.setItem('patternWidth', selectedValue.value)
-      // window.localStorage.setItem('number', number.value)
+      const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
+        id: workstationId.value,
+        workstationId: workstationId.value,
+        patternHeight: selectedValuea.value,
+        patternWidth: selectedValue.value,
+        filmsId: selectedValueb.value,
+        patternThickness: selectedValuec.value,
+        number: number.value
+      });
     if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
-      // window.location.reload() 
       add.value = false;
      tableDataa.value = response.data;
-      // let workstationId = window.localStorage.getItem('workstationId')
-      // let patternHeight = window.localStorage.getItem('patternHeight')
-      // let patternWidth = window.localStorage.getItem('patternWidth')
-      // let number = window.localStorage.getItem('number')
       if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
       flake.value = true
     } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2'){
@@ -329,23 +276,13 @@
     }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4'){
       flakec.value = true
     }
-    //   if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '1') {
-    //   flake.value = true
-    // } else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '2'){
-    //   flakea.value = true
-    // }else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '3'){
-    //   flakeb.value = true
-    // }else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '4'){
-    //   flakec.value = true
-    // }
       selectedValuea.value = '';
       selectedValue.value = '';
       selectedValueb.value = '';
       selectedValuec.value = '';
       number.value = '';
-        list()
+      list()
     } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.message);
     }
   } catch (error) {  
@@ -364,9 +301,7 @@
       number: number.value
     }); 
     if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
-      // window.location.reload() 
       add.value = false;
      tableDataa.value = response.data;
       if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
@@ -411,28 +346,23 @@
       number: 0
     });
     if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
       adda.value = false;
-     tableDataa.value = response.data;
-      // window.localStorage.setItem('workstationId', response.data.workstationId)
-      // let workstationId = window.localStorage.getItem('workstationId')
+      tableDataa.value = response.data;
       if (workstationId.value == '1') {
-      flake.value = false
-    } else if (workstationId.value == '2'){
-      flakea.value = false
-    }else if (workstationId.value == '3'){
-      flakeb.value = false
-    }else if (workstationId.value == '4'){
-      flakec.value = false
-    }
-        list()
-      } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+        flake.value = false
+      } else if (workstationId.value == '2') {
+        flakea.value = false
+      } else if (workstationId.value == '3') {
+        flakeb.value = false
+      } else if (workstationId.value == '4') {
+        flakec.value = false
+      }
+      list()
+    } else {
       ElMessage.error(response.message);
     }
   } catch (error) {
-    // 澶勭悊閿欒
     console.error(error);
   }
 };
@@ -444,9 +374,7 @@
     })
       window.localStorage.setItem('engineeringId', selectedProjectNo.value)
     if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
-      // window.location.reload() 
       dialogFormVisible.value = false;
       tableData.splice(0, tableData.length, ...response.data);
       selectedProjectNo.value = ''
@@ -473,13 +401,10 @@
       label: thickness,  
     })); 
     } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.message);
-      // ElMessage.error(response.msg);
     }
 }
 catch (error) {
-    // 澶勭悊閿欒
     console.error(error);
   }
 }
@@ -493,18 +418,14 @@
     state: 1,
     })
     if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
-      // window.location.reload() 
       blind.value = false;
       selectedProjectNoa.value = '';
     } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.message);
     }
 }
 catch (error) {
-    // 澶勭悊閿欒
     console.error(error);
   }
     } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {  
@@ -514,21 +435,20 @@
 }
 // 鏆傚仠
 const handlea = async () => {
-  try  {
-  let engineeringId = window.localStorage.getItem('engineeringId')
-console.log(engineeringId);
-if (engineeringId !== '') {
-  const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
-      engineeringId: engineeringId,
-      state: 0,
-    })
-    if (response.code == 200) {
-      ElMessage.success(response.message);
-      blinda.value = false;
-      // tableData.splice([]);
-    } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.message);
+  try {
+    let engineeringId = window.localStorage.getItem('engineeringId')
+    console.log(engineeringId);
+    if (engineeringId !== '') {
+      const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
+        engineeringId: engineeringId,
+        state: 0,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+        // tableData.splice([]);
+      } else {
+        ElMessage.error(response.message);
     }
   }
     else  {
@@ -539,7 +459,6 @@
     }
 }
 catch (error) {
-    // 澶勭悊閿欒
     console.error(error);
   }
 }
@@ -554,13 +473,9 @@
       state: 0,
     })
     if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
-      // window.location.reload() 
       blindb.value = false;
       tableData.splice([]);
- 
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.message);
     }
   }
@@ -572,7 +487,6 @@
     }
 }
 catch (error) {
-    // 澶勭悊閿欒
     console.error(error);
   }
 }
@@ -603,7 +517,7 @@
 }  
 // 寮�濮嬩笂鐗�
 const handleBind = (row) => {
-  blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  blind.value = true;
 };
 // 鏆傚仠
 const handleBinda = (row) => {
@@ -613,11 +527,10 @@
 const handleBindb = (row) => {
   blindb.value = true; 
 };
- 
 // 鍒犻櫎
 const handleBindRacka = (row) => {
   workstationId.value = row.workstationId;
-  adda.value = true; 
+  adda.value = true;
 };
 // 瀹氫箟涓�涓搷搴斿紡寮曠敤锛岀敤浜庡瓨鍌ㄩ鑹茬姸鎬�  
 const markingMachineStatus = ref('#911005');  
@@ -638,76 +551,34 @@
   const newState = row.state === 100 ? 0 : 100;  
   try {  
     // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��  
-    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });  
-    if (response.code === 200) {  
-      ElMessage.success(response.message);  
-      row.state = newState;  
-    } else {  
-      ElMessage.error(response.message);  
-    }  
-  } catch (error) {  
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
     // 澶勭悊璇锋眰閿欒  
-    ElMessage.error(t('basicData.glassnull'));   
-  }  
-};  
-// 涓婄墖鏈鸿仈鏈虹姸鎬�
-// const wsUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
-// const ws = new WebSocket(wsUrl);  
-// ws.onopen = () => {  
-//   console.log('WebSocket杩炴帴宸叉墦寮�');  
-// };  
-  
-// // 鐩戝惉WebSocket鐨勯敊璇簨浠�  
-// ws.onerror = (error) => {  
-//   console.error('WebSocket鍙戠敓閿欒:', error);  
-// };  
-  
-// // 鐩戝惉WebSocket鐨勫叧闂簨浠�  
-// ws.onclose = (event) => {  
-//   if (event.wasClean) {  
-//     console.log('WebSocket杩炴帴宸叉甯稿叧闂�');  
-//   } else {  
-//     console.error('WebSocket杩炴帴寮傚父鍏抽棴');  
-//   }  
-// };  
-// // 鐩戝惉WebSocket鐨勬秷鎭簨浠�  
-// ws.onmessage = (event) => {  
-//   try {   
-//     const data = JSON.parse(event.data.replace('<END>', '')); // 瑙f瀽娑堟伅涓篔SON  
-//     if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {  
-// if(data.InkageStatus!=null){
-//       const status = data.InkageStatus[0]; 
-//       cuttingMachine.value = status; 
-//             upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
-//       cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';  
-//       inKageWord.value = status === '1' ? 0 : 1;  
-// }
-//     } else {  
-//       // 澶勭悊閿欒鎯呭喌鎴栨棤鏁堟暟鎹�  
-//       // console.error('鎺ユ敹鍒扮殑鏁版嵁鏃犳晥', data);  
-//     }  
-//   } catch (error) {  
-//     // console.error('瑙f瀽WebSocket娑堟伅鏃跺彂鐢熼敊璇�', error);  
-//   }  
-// };  
-const confirmCutting = async () => {  
-  try {  
-    const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad', 
-      inKageWord.value
-  );  
-    if (response.code == 200) {  
-      const status = response.data.status; 
+    ElMessage.error(t('basicData.glassnull'));
+  }
+};
+const confirmCutting = async () => {
+  try {
+    const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad',
+        inKageWord.value
+    );
+    if (response.code == 200) {
+      const status = response.data.status;
       upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
-      cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';  
-      // 鏄剧ず鎴愬姛娑堟伅  
-      ElMessage.success(response.message);  
-    } else {  
-      ElMessage.error(response.message || '璇锋眰澶辫触');  
-    }  
-  } catch (error) {  
-    // 澶勭悊閿欒  
-    console.error('璇锋眰鏃跺彂鐢熼敊璇�', error);  
-    ElMessage.error('璇锋眰鏃跺彂鐢熼敊璇�');  
+      cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
+      ElMessage.success(response.message);
+    } else {
+      ElMessage.error(response.message || '璇锋眰澶辫触');
+    }
+  } catch (error) {
+    console.error('璇锋眰鏃跺彂鐢熼敊璇�', error);
+    ElMessage.error('璇锋眰鏃跺彂鐢熼敊璇�');
   }  
 };
 </script>
@@ -730,14 +601,13 @@
     <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
     <!-- <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="danger" @click="handleBindb">鍋滄浠诲姟</el-button> -->
-    
     <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"
+        height="350"
+        ref="table"
+        :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+        :data="tableData"
     >
       <el-table-column prop="layoutSequence" :label="$t('basicData.layoutSequence')" width="100" align="center"/>
       <el-table-column prop="engineeringId" :label="$t('basicData.projectnumber')" width="200" align="center"/>
@@ -790,7 +660,6 @@
       </div>
     </template>
   </el-dialog>
-  
 <el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
     <el-table  ref="table" style="margin-top: 20px;height: 300px;"
         :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
@@ -860,7 +729,6 @@
         </el-table-column>
         </el-table>
     </div>
-    
   <el-dialog v-model="add" top="23vh" width="45%" :title="$t('basicData.addglass')" >
     <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
             <el-form  size="mini" label-width="150px">
@@ -991,23 +859,23 @@
   <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" :title="$t('basicData.project')" >
     <div style="margin-left: 50px;margin-bottom: 10px;">
       <el-form-item :label="$t('basicData.projectnumber')" :required="true">
-        <el-select  
-           v-model="selectedProjectNo"  
-           filterable  
-           clearable  
-           :placeholder="$t('basicData.plselectproject')"
-           style="width: 220px"  
-           @input="handleInputChange"  
-         >  
-      <el-option  
-         v-for="item in titleSelectJson['processType']"  
-         :key="item.id"  
-         :label="item.projectNo"  
-         :value="item.projectNo"  
-      />  
-    </el-select>  
-              </el-form-item>
-          </div>
+        <el-select
+            v-model="selectedProjectNo"
+            filterable
+            clearable
+            :placeholder="$t('basicData.plselectproject')"
+            style="width: 220px"
+            @input="handleInputChange"
+        >
+          <el-option
+              v-for="item in titleSelectJson['processType']"
+              :key="item.id"
+              :label="item.projectNo"
+              :value="item.projectNo"
+          />
+        </el-select>
+      </el-form-item>
+    </div>
     <template #footer>
       <div id="dialog-footer">
         <el-button type="primary" @click="handleup">
@@ -1018,9 +886,7 @@
     </template>
   </el-dialog>
 </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{
@@ -1075,5 +941,4 @@
   margin-top: -45px;
   margin-left: 703px;
 }
- 
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
index 941cb20..ea93072 100644
--- a/UI-Project/src/views/Returns/upreturns.vue
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -10,156 +10,229 @@
 const router = useRouter()
 const {t} = useI18n()
 const selectValuesa = reactive([]);
-const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
-const loadingline = ref(''); // 褰撳墠閫変腑鐨勪笂鐗囩嚎
+const selectedProjectNo = ref('');
+const stationCell = ref('1');
+const filmRemove = ref('');
 const dialogFormVisible = ref(false)
- 
- 
- 
- 
 const blind = ref(false)
 const blinda = ref(false)
-const blindb = ref(false)
-const add = ref(false)
-const adda = ref(false)
 const dialoglea = ref(false)
 const tableDatax = ref([])
-const user = ref('');
-const projectNo = ref('');
-const workstationId = ref('');
-const id = ref('');
-const patternHeight = ref('');
-const patternWidth = ref('');
-const filmsId = ref('');
-const patternThickness = ref('');
-const number = ref('');
-const canSelectProject = ref(true);
-const canStartLoading = ref(false);
-const selectedValue = ref(''); // 褰撳墠閫変腑鐨勫  
-const selectedValuea = ref('');  
-const selectedValueb = ref('');
-const selectedValuec = ref(''); 
-// const upstatus = ref('涓婄墖鏈烘墜鍔ㄧ姸鎬侊細'); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��  
 const upstatus = ref(t('basicData.machineaa'));
-const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�  
 const cuttingMachineStatusColor = ref('#911005'); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊 
-const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊� 
-const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
-const ida = ref(null); 
-const selectOptions = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsa = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsb = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsc = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-  const tableDataa = ref([])
-  const tableData = reactive([]);
+const tableDataa = ref<any[]>([]);
+const tableDatab = ref<any[]>([]);
+const tableData = ref([])
+// const tableData = reactive([]);
+const titleSelectJson = ref({
+  engineerId: [],
+})
 const handlezhiban = () => {
-  dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  dialoglea.value = true;
+  fetchFlowCardId();
 };
 const selectproject = () => {
   dialogFormVisible.value = true;
   selectgong();
 };
- 
- 
+const markingMachineStatus = ref('#911005');
+const cuttingMachineStatus = ref('#911005');
+const confirmMarkingMachine = () => {
+  markingMachineStatus.value = 'green';
+};
+const confirmCuttingMachine = () => {
+  cuttingMachineStatus.value = 'green';
+};
 onMounted(() => {
   socket = initializeWebSocket(socketUrl, handleMessage);
 });
-const handleMessage = (data) => {
-
-}
-  onUnmounted(() => {
-    if (socket) {
+onUnmounted(() => {
+  if (socket) {
     closeWebSocket(socket);
+  }
+});
+const fetchTableData = async () => {
+  try {
+    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
+    if (response.code === 200) {
+      tableData.splice(0, tableData.length, ...response.data);
+      ElMessage.error(response.message);
     }
-    });
-//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
-const titleSelectJson = ref({
-  engineerId: [],
-})
+  } catch (error) {
+    // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+    // ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+  }
+};
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/uploadGlass`;
-// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
- 
+const handleMessage = (data: any) => {
+  tableDataa.value = data.list[0].slice(0, 2);
+  tableDatab.value = data.list[0].slice(2, 4);
+};
 onBeforeUnmount(() => {
   closeWebSocket();
 });
-const selectgong = async () => {
+const requestData = {
+  state: 100
+};
+const selectgong = async (queryString: string) => {
   try {
-    const response = await request.post('/loadGlass/engineering/engineering/selectTask')
+    const response = await request.post('/loadGlass/optimizeProject/listByState', {
+      ...requestData,
+      query: queryString
+    });
     if (response.code == 200) {
       titleSelectJson.value.engineerId = response.data;
     } else {
       ElMessage.error(response.message);
     }
   } catch (error) {
-    // 澶勭悊閿欒
+    console.error(error);
+  }
+};
+//閫夋嫨宸ョ▼棰勮纭
+const handlesure = async () => {
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
+      stationCell: 1,
+      // engineerId: 'P24101602',
+      engineerId: selectedProjectNo.value,
+      filmRemove: filmRemove.value,
+    })
+    window.localStorage.setItem('engineeringId', selectedProjectNo.value)
+    window.localStorage.setItem('filmRemove', filmRemove.value)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableData.value = response.data;
+      dialogFormVisible.value = false;
+      selectedProjectNo.value = ''
+      filmRemove.value = ''
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
     console.error(error);
   }
 }
-// 娣诲姞
-const handleBindRack = (row) => {
-  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
-  ida.value = row.id;
-  add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+// 寮�濮嬩笂鐗�
+const handleon = async () => {
+  let filmRemove = window.localStorage.getItem('filmRemove')
+  let engineeringId = window.localStorage.getItem('engineeringId')
+  if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
+    try {
+      const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+        stationCell: 1,
+        filmRemove: filmRemove,
+        // engineerId: 'P24101602',
+        engineerId: engineeringId,
+        state: 1,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blind.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } catch (error) {
+      console.error(error);
+    }
+  } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
+    // 鎻愮ず鐢ㄦ埛鎵撴爣鏈烘湭灏辩华
+    ElMessage.warning(t('basicData.pausea'));
+  }
+}
+// 鏆傚仠
+const handleup = async () => {
+  try {
+    let engineeringId = window.localStorage.getItem('engineeringId')
+    console.log(engineeringId);
+    if (engineeringId !== '') {
+      const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
+        stationCell: 1,
+        // engineerId: 'P24101602',
+        engineeringId: engineeringId,
+        state: 0,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blinda.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } else {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  let stateList = []
+  if (selectValuesa[1] != null && selectValuesa[1] != 'undefined') {
+    if (selectValuesa[1] != "") {
+      stateList = [selectValuesa[1]];
+    }
+  }
+  const response = await request.post("/cacheVerticalGlass/damage/selectDamage", {
+    taskState: stateList,
+    taskType: 1
+  })
+  if (response.code === 200) {
+    tableData.value = response.data;
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
 };
 
-function getStatusText(state: number) {
-  switch (state) {
-    case 0:
-      return t('basicData.waiting');
-    case 1:
-      return t('basicData.up');
-    case 2:
-      return t('basicData.up');
-    case 100:  
-    return t('basicData.finish');
-  }  
-}  
-function getStatusType(state: number) {  
-  switch (state) {  
-    case 0:
-      return 'warning';  
-    case 1: 
-      return 'primary';  
-    case 2: 
-      return 'primary';  
-    case 100:
-      return 'success';  
-  }  
-}  
+// 鍊肩彮淇℃伅
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment', {
+      line: 2001,
+      workingProcedure: '鍐峰姞宸�'
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatax.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+onMounted(fetchTableData);
 // 寮�濮嬩笂鐗�
 const handleBind = (row) => {
-  blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  blind.value = true;
 };
 // 鏆傚仠
 const handleBinda = (row) => {
   blinda.value = true;
 };
-// 鍋滄浠诲姟
-const handleBindb = (row) => {
-  blindb.value = true; 
-};
- 
-
-const toggleEnableState = async (row: any) => {  
+const toggleEnableState = async (row: any) => {
   // 妫�鏌� id 鏄惁涓虹┖  
   if (!row.id) {  
     ElMessage.error(t('basicData.updatanull'));  
     return; // 濡傛灉 id 涓虹┖锛屽垯涓嶆墽琛屽悗缁搷浣�  
   }  
-  const newState = row.state === 100 ? 0 : 100;  
-  try {  
-    // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��  
-    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });  
-    if (response.code === 200) {  
-      ElMessage.success(response.message);  
-      row.state = newState;  
-    } else {  
-      ElMessage.error(response.message);  
-    }  
-  } catch (error) {  
-    // 澶勭悊璇锋眰閿欒  
-    ElMessage.error(t('basicData.glassnull'));   
+  const newState = row.state === 100 ? 0 : 100;
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', {id: row.id, state: newState});
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
   }  
 };
 </script>
@@ -175,13 +248,13 @@
     <div style="margin-left: 70px;">{{ upstatus  }} </div>
     <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
     <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.change') }}</el-button>
-   
   </div>
     <el-button style="margin-top: 5px;margin-left: 15px;"  type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
-    <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.loadinglinea')" style="margin-top: 5px;margin-left: 20px;" >
+    <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.oneloadingline')"
+               style="margin-top: 5px;margin-left: 20px;">
       <el-option :label="$t('Mounting.all')" value="0"></el-option>
       <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
       <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
@@ -231,79 +304,78 @@
       </div>
     </el-card>
     <div style="display: flex;">
-  <div style="width: 49%;float: left;">
-    <div style="display: flex;">
-        <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
-        <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
-     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
-        >
-          <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
-          <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
-          <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
-          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
-          <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
+      <div style="width: 49%;float: left;margin-left: 300px;">
+        <div style="display: flex;">
+          <img src="../../assets/shangpianji.png" alt=""
+               style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+          <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
+                    :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+          >
+            <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60"/>
+            <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/>
+            <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/>
+            <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/>
+            <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80"/>
         </el-table>
     </div>
   </div>
-    <div style="width: 48%;float: right;">
-      <div style="display: flex;">
-        <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
-        <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
-     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
-        >
-          <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
-          <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
-          <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
-          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
-          <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
-        </el-table>
-    </div>
-</div>
+      <!-- <div style="width: 48%;float: right;">
+        <div style="display: flex;">
+          <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+          <el-table :data="tableDatab" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
+       :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+          >
+            <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
+            <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
+            <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
+            <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+            <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
+          </el-table>
+      </div>
+  </div> -->
 </div>
   <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handle">
+        <el-button type="primary" @click="handleon">
           {{ $t('basicData.confirm') }}
         </el-button>
         <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
       </div>
     </template>
   </el-dialog>
-  
-<el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
-    <el-table  ref="table" style="margin-top: 20px;height: 300px;"
-        :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
-          <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" />
-          <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
-        <template #default="{ row }">  
-          <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>  
-        </template>  
-      </el-table-column>
-          <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
-            <template #default="{ row }">  
-          <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>  
-        </template>
+
+    <el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
+      <el-table ref="table" style="margin-top: 20px;height: 300px;"
+                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
+        <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')"/>
+        <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
+          <!-- <template #default="{ row }">
+            <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>
+          </template>   -->
+        </el-table-column>
+        <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
+          <!-- <template #default="{ row }">
+        <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>
+      </template> -->
         </el-table-column>
         </el-table>
         <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
-          {{ $t('searchOrder.add') }}
-        </el-button>
-        <el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
+        <el-button @click="dialoglea = false">{{ $t('large.close') }}</el-button>
       </div>
     </template>
 </el-dialog>
   <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
     <div style="margin-left: 50px;margin-bottom: 10px;">
     <el-form-item :label="$t('Mounting.loadingline')" :required="true">
-    <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;" >
-      <el-option :label="$t('Mounting.all')" value="0"></el-option>
-      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
-      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
-    </el-select>
+      <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')"
+                 style="margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="0"></el-option>
+        <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+        <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+      </el-select>
     </el-form-item>
     </div>
     <template #footer>
@@ -315,169 +387,50 @@
       </div>
     </template>
   </el-dialog>
-    
-  <el-dialog v-model="add" top="23vh" width="45%" :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="70px" 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('basicData.widtha')" :required="true" style="width: 14vw">
-               <el-select  
-                      v-model="selectedValue"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectwidth')"
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptions"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select>  
-              </el-form-item>
-              </div></div>
-          </el-col>
-          <el-col :span="9">
-            <div id="dta" style="font-size: 15px;">
-        <div>
-          <el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
-            <el-select  
-                      v-model="selectedValuea"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectheight')" 
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptionsa"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select> 
-              </el-form-item></div>
-              </div>
-          </el-col>
-        </el-row>
-        <el-row style="margin-top: 10px;">
-          <el-col :span="6">
-              <div id="dt" style="font-size: 15px;">
-        <div>
-              <el-form-item :label="$t('basicData.coatingtypesa')"  :required="true" style="width: 14vw;">
-                <el-select  
-                      v-model="selectedValueb"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectcoatingtypes')"
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptionsb"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select> 
-              </el-form-item></div></div>
-          </el-col>
-          <el-col :span="9">
-            <div id="dta" style="font-size: 15px;">
-        <div>
-              <el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
-                <el-select  
-                      v-model="selectedValuec"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectthickness')"
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptionsc"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select> 
-                <!-- <el-input v-model="patternThickness" autocomplete="off" /> -->
-              </el-form-item></div></div>
-          </el-col>
-        </el-row>
-        <el-row style="margin-top: 10px;">
-          <el-col :span="6">
-              <div id="dt" style="font-size: 15px;">
-        <div>
-              <el-form-item :label="$t('basicData.quantitya')" :required="true" style="width: 14vw;">
-                <el-input :placeholder="$t('basicData.selectquantity')" v-model="number" autocomplete="off" />
-              </el-form-item></div></div>
-          </el-col>
-        </el-row>
-        </el-form>
-            </el-form>
-          </div>
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
-          {{ $t('basicData.confirm') }}
-        </el-button>
-        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
-      </div>
-    </template>
-  </el-dialog>
-  <el-dialog v-model="adda" top="30vh" width="25%" :title="$t('basicData.deletemessage')">
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirma">
-          {{ $t('basicData.confirm') }}
-        </el-button>
-        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
-      </div>
-    </template>
-  </el-dialog>
         </div>
-  <el-dialog v-model="dialogFormVisible" top="24vh" width="50%"  >
+  <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
     <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
-    <el-form-item :label="$t('Mounting.loadingline')" :required="true">
-    <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')"  >
-      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
-      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
-    </el-select>
-              </el-form-item>
+      <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+        <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
+          <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+          <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item :label="$t('Mounting.projecta')" :required="true">
-        <el-select  
-           v-model="selectedProjectNo"  
-           filterable  
-           clearable  
-           :placeholder="$t('basicData.plselectproject')"
-           style="width: 220px"  
-           @input="handleInputChange"  
-         >
+        <el-select
+            v-model="selectedProjectNo"
+            filterable
+            clearable
+            :placeholder="$t('basicData.plselectproject')"
+            style="width: 220px"
+            @input="handleInputChange"
+        >
           <el-option
               v-for="item in titleSelectJson['engineerId']"
               :key="item.id"
-              :label="item.engineerId"
-              :value="item.engineerId"
+              :label="item.projectNo"
+              :value="item.projectNo"
           />
-    </el-select>  
-              </el-form-item>
-          </div>
+        </el-select>
+      </el-form-item>
+      <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
+        <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
+          <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+          <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
+          <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+    </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleup">
+        <el-button type="primary" @click="handlesure">
           {{ $t('basicData.confirm') }}
         </el-button>
         <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
       </div>
     </template>
   </el-dialog>
+
 </template>
  
 <style scoped>
diff --git a/UI-Project/src/views/Returns/upreturns2.vue b/UI-Project/src/views/Returns/upreturns2.vue
index fd2145d..814a0fa 100644
--- a/UI-Project/src/views/Returns/upreturns2.vue
+++ b/UI-Project/src/views/Returns/upreturns2.vue
@@ -1,112 +1,158 @@
 <script lang="ts" setup>
-import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
+import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
 import {useRouter} from "vue-router"
-const router = useRouter()
-import type { TableColumnCtx } from 'element-plus'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { useI18n } from 'vue-i18n'
-const { t } = useI18n()
-import { WebSocketHost ,host} from '@/utils/constants'
+import {ElMessage} from 'element-plus'
+import {useI18n} from 'vue-i18n'
+import {host, WebSocketHost} from '@/utils/constants'
 import request from "@/utils/request"
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
+import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
+
+const router = useRouter()
+const {t} = useI18n()
 const selectValuesa = reactive([]);
-const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
-const loadingline = ref(''); // 褰撳墠閫変腑鐨勪笂鐗囩嚎
+const selectedProjectNo = ref('');
+const stationCell = ref('2');
+const filmRemove = ref('');
 const dialogFormVisible = ref(false)
 const blind = ref(false)
 const blinda = ref(false)
-const blindb = ref(false)
-const add = ref(false)
-const adda = ref(false)
 const dialoglea = ref(false)
 const tableDatax = ref([])
-const user = ref('');
-const projectNo = ref('');
-const workstationId = ref('');
-const id = ref('');
-const patternHeight = ref('');
-const patternWidth = ref('');
-const filmsId = ref('');
-const patternThickness = ref('');
-const number = ref('');
-const canSelectProject = ref(true);
-const canStartLoading = ref(false);
-const selectedValue = ref(''); // 褰撳墠閫変腑鐨勫  
-const selectedValuea = ref('');  
-const selectedValueb = ref('');
-const selectedValuec = ref(''); 
-// const upstatus = ref('涓婄墖鏈烘墜鍔ㄧ姸鎬侊細'); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��  
 const upstatus = ref(t('basicData.machineaa'));
-const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�  
 const cuttingMachineStatusColor = ref('#911005'); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊 
-const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊� 
-const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
-const ida = ref(null); 
-const selectOptions = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsa = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsb = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-const selectOptionsc = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
-  const tableDataa = ref([])
-  const tableData = reactive([]);
+const tableDataa = ref<any[]>([]);
+const tableDatab = ref<any[]>([]);
+const tableData = ref([])
+// const tableData = reactive([]);
+const titleSelectJson = ref({
+  engineerId: [],
+})
 const handlezhiban = () => {
-  dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  dialoglea.value = true;
+  fetchFlowCardId();
 };
 const selectproject = () => {
   dialogFormVisible.value = true;
+  selectgong();
 };
- 
- 
+const markingMachineStatus = ref('#911005');
+const cuttingMachineStatus = ref('#911005');
+const confirmMarkingMachine = () => {
+  markingMachineStatus.value = 'green';
+};
+const confirmCuttingMachine = () => {
+  cuttingMachineStatus.value = 'green';
+};
 onMounted(() => {
-  // socket = initializeWebSocket(socketUrl, handleMessage);
+  socket = initializeWebSocket(socketUrl, handleMessage);
 });
-  onUnmounted(() => {
-    if (socket) {
+onUnmounted(() => {
+  if (socket) {
     closeWebSocket(socket);
+  }
+});
+const fetchTableData = async () => {
+  try {
+    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
+    if (response.code === 200) {
+      tableData.splice(0, tableData.length, ...response.data);
+      ElMessage.error(response.message);
     }
-    });
-//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
-const titleSelectJson = ref({
-  processType: [],
-})
-const titleSelectJsona = ref({
-  processTypea: [],
-})
+  } catch (error) {
+    // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+    // ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+  }
+};
 let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
-// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
- 
-const requestData = {  
-  state: 100  
-};  
- 
- 
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/uploadGlass`;
+const handleMessage = (data: any) => {
+  tableDataa.value = data.list[0].slice(0, 2);
+  tableDatab.value = data.list[0].slice(2, 4);
+};
 onBeforeUnmount(() => {
   closeWebSocket();
 });
-// 娣诲姞
-const handleBindRack = (row) => {
-  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
-  ida.value = row.id;
-  add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+const requestData = {
+  state: 100
 };
-// 鏆傚仠
-const handlea = async () => {
-  try  {
-  let engineeringId = window.localStorage.getItem('engineeringId')
-console.log(engineeringId);
-if (engineeringId !== '') {
-  const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
-      engineeringId: engineeringId,
-      state: 0,
+const selectgong = async (queryString: string) => {
+  try {
+    const response = await request.post('/loadGlass/optimizeProject/listByState', {
+      ...requestData,
+      query: queryString
+    });
+    if (response.code == 200) {
+      titleSelectJson.value.engineerId = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+//閫夋嫨宸ョ▼棰勮纭
+const handlesure = async () => {
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
+      stationCell: 2,
+      engineerId: selectedProjectNo.value,
+      filmRemove: filmRemove.value,
     })
+    window.localStorage.setItem('engineeringId', selectedProjectNo.value)
+    window.localStorage.setItem('filmRemove', filmRemove.value)
     if (response.code == 200) {
       ElMessage.success(response.message);
       blinda.value = false;
-      // tableData.splice([]);
+      selectedProjectNo.value = ''
+      filmRemove.value = ''
     } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+// 寮�濮嬩笂鐗�
+const handleon = async () => {
+  let filmRemove = window.localStorage.getItem('filmRemove')
+  let engineeringId = window.localStorage.getItem('engineeringId')
+  if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
+    try {
+      const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+        stationCell: 2,
+        filmRemove: filmRemove,
+        engineerId: engineeringId,
+        state: 1,
+      })
+      if (response.code == 200) {
+        ElMessage.success(response.message);
+        blind.value = false;
+      } else {
+        ElMessage.error(response.message);
+      }
+    } catch (error) {
+      console.error(error);
+    }
+  } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
+    // 鎻愮ず鐢ㄦ埛鎵撴爣鏈烘湭灏辩华
+    ElMessage.warning(t('basicData.pausea'));
+  }
+}
+// 鏆傚仠
+const handleup = async () => {
+  try {
+    let engineeringId = window.localStorage.getItem('engineeringId')
+    console.log(engineeringId);
+    if (engineeringId !== '') {
+      const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
+        stationCell: 2,
+        engineeringId: engineeringId,
+        state: 0,
+      })
+      if (response.code == 200) {
+      ElMessage.success(response.message);
+      blinda.value = false;
+    } else {
       ElMessage.error(response.message);
     }
   }
@@ -116,73 +162,74 @@
         message: t('basicData.infonull'),
       })
     }
-}
-catch (error) {
-    // 澶勭悊閿欒
+  } catch (error) {
     console.error(error);
   }
 }
-function getStatusText(state: number) {
-  switch (state) {
-    case 0:  
-      return t('basicData.waiting');
-    case 1:  
-      return t('basicData.up');
-    case 2:  
-    return t('basicData.up');
-    case 100:  
-    return t('basicData.finish');
-  }  
-}  
-function getStatusType(state: number) {  
-  switch (state) {  
-    case 0:
-      return 'warning';  
-    case 1: 
-      return 'primary';  
-    case 2: 
-      return 'primary';  
-    case 100:
-      return 'success';  
-  }  
-}  
+
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  let stateList = []
+  if (selectValuesa[1] != null && selectValuesa[1] != 'undefined') {
+    if (selectValuesa[1] != "") {
+      stateList = [selectValuesa[1]];
+    }
+  }
+  const response = await request.post("/cacheVerticalGlass/damage/selectDamage", {
+    taskState: stateList,
+    taskType: 1
+  })
+  if (response.code === 200) {
+    tableData.value = response.data;
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+
+// 鍊肩彮淇℃伅
+const fetchFlowCardId = async () => {
+  try {
+    const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment', {
+      line: 2001,
+      workingProcedure: '鍐峰姞宸�'
+    })
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      tableDatax.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+}
+onMounted(fetchTableData);
 // 寮�濮嬩笂鐗�
 const handleBind = (row) => {
-  blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  blind.value = true;
 };
 // 鏆傚仠
 const handleBinda = (row) => {
   blinda.value = true;
 };
-// 鍋滄浠诲姟
-const handleBindb = (row) => {
-  blindb.value = true; 
-};
- 
-// 鍒犻櫎
-const handleBindRacka = (row) => {
-  workstationId.value = row.workstationId;
-  adda.value = true; 
-};
-const toggleEnableState = async (row: any) => {  
+const toggleEnableState = async (row: any) => {
   // 妫�鏌� id 鏄惁涓虹┖  
   if (!row.id) {  
     ElMessage.error(t('basicData.updatanull'));  
     return; // 濡傛灉 id 涓虹┖锛屽垯涓嶆墽琛屽悗缁搷浣�  
   }  
-  const newState = row.state === 100 ? 0 : 100;  
-  try {  
-    // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��  
-    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });  
-    if (response.code === 200) {  
-      ElMessage.success(response.message);  
-      row.state = newState;  
-    } else {  
-      ElMessage.error(response.message);  
-    }  
-  } catch (error) {  
-    // 澶勭悊璇锋眰閿欒  
-    ElMessage.error(t('basicData.glassnull'));   
+  const newState = row.state === 100 ? 0 : 100;
+  try {
+    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', {id: row.id, state: newState});
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      row.state = newState;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    ElMessage.error(t('basicData.glassnull'));
   }  
 };
 </script>
@@ -198,13 +245,13 @@
     <div style="margin-left: 70px;">{{ upstatus  }} </div>
     <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
     <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.change') }}</el-button>
-   
   </div>
     <el-button style="margin-top: 5px;margin-left: 15px;"  type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
-    <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.loadinglinea')" style="margin-top: 5px;margin-left: 20px;" >
+    <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.twoloadingline')"
+               style="margin-top: 5px;margin-left: 20px;">
       <el-option :label="$t('Mounting.all')" value="0"></el-option>
       <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
       <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
@@ -254,79 +301,78 @@
       </div>
     </el-card>
     <div style="display: flex;">
-  <div style="width: 49%;float: left;">
-    <div style="display: flex;">
-        <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
-        <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
-     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
-        >
-          <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
-          <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
-          <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
-          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
-          <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
-        </el-table>
-    </div>
-  </div>
-    <div style="width: 48%;float: right;">
-      <div style="display: flex;">
-        <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
-        <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
-     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
-        >
-          <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
-          <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
-          <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
-          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
-          <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
-        </el-table>
+      <!-- <div style="width: 49%;float: left;margin-left: 300px;">
+        <div style="display: flex;">
+            <img src="../../assets/shangpianji.png" alt="" style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+            <el-table :data="tableDataa" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
+         :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+            >
+              <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
+              <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
+              <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
+              <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+              <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
+            </el-table>
+        </div>
+      </div> -->
+      <div style="width: 48%;float: right;margin-left: 300px;">
+        <div style="display: flex;">
+          <img src="../../assets/shangpianji.png" alt=""
+               style="max-width: 25%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
+          <el-table :data="tableDatab" border style="width: 75%;margin-top: 10%;margin-left: 2%;"
+                    :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+          >
+            <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60"/>
+            <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/>
+            <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/>
+            <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/>
+            <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80"/>
+          </el-table>
     </div>
 </div>
 </div>
   <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handle">
+        <el-button type="primary" @click="handleon">
           {{ $t('basicData.confirm') }}
         </el-button>
         <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
       </div>
     </template>
   </el-dialog>
-  
-<el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
-    <el-table  ref="table" style="margin-top: 20px;height: 300px;"
-        :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
-          <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" />
-          <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
-        <template #default="{ row }">  
-          <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>  
-        </template>  
-      </el-table-column>
-          <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
-            <template #default="{ row }">  
-          <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>  
-        </template>
+
+    <el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
+      <el-table ref="table" style="margin-top: 20px;height: 300px;"
+                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
+        <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')"/>
+        <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
+          <!-- <template #default="{ row }">
+            <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>
+          </template>   -->
+        </el-table-column>
+        <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
+          <!-- <template #default="{ row }">
+        <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>
+      </template> -->
         </el-table-column>
         </el-table>
         <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
-          {{ $t('searchOrder.add') }}
-        </el-button>
-        <el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
+        <el-button @click="dialoglea = false">{{ $t('large.close') }}</el-button>
       </div>
     </template>
 </el-dialog>
   <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
     <div style="margin-left: 50px;margin-bottom: 10px;">
     <el-form-item :label="$t('Mounting.loadingline')" :required="true">
-    <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;" >
-      <el-option :label="$t('Mounting.all')" value="0"></el-option>
-      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
-      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
-    </el-select>
+      <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')"
+                 style="margin-left: 20px;">
+        <el-option :label="$t('Mounting.all')" value="0"></el-option>
+        <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+        <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+      </el-select>
     </el-form-item>
     </div>
     <template #footer>
@@ -338,169 +384,50 @@
       </div>
     </template>
   </el-dialog>
-    
-  <el-dialog v-model="add" top="23vh" width="45%" :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="70px" 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('basicData.widtha')" :required="true" style="width: 14vw">
-               <el-select  
-                      v-model="selectedValue"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectwidth')"
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptions"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select>  
-              </el-form-item>
-              </div></div>
-          </el-col>
-          <el-col :span="9">
-            <div id="dta" style="font-size: 15px;">
-        <div>
-          <el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
-            <el-select  
-                      v-model="selectedValuea"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectheight')" 
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptionsa"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select> 
-              </el-form-item></div>
-              </div>
-          </el-col>
-        </el-row>
-        <el-row style="margin-top: 10px;">
-          <el-col :span="6">
-              <div id="dt" style="font-size: 15px;">
-        <div>
-              <el-form-item :label="$t('basicData.coatingtypesa')"  :required="true" style="width: 14vw;">
-                <el-select  
-                      v-model="selectedValueb"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectcoatingtypes')"
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptionsb"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select> 
-              </el-form-item></div></div>
-          </el-col>
-          <el-col :span="9">
-            <div id="dta" style="font-size: 15px;">
-        <div>
-              <el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
-                <el-select  
-                      v-model="selectedValuec"  
-                      filterable  
-                      clearable  
-                      :placeholder="$t('basicData.selectthickness')"
-                      style="width: 220px"  
-                      @input="handleInputChangea"  
-                    >  
-                 <el-option  
-                    v-for="item in selectOptionsc"  
-                    :key="item.id"  
-                    :label="item.label"  
-                    :value="item.value"  
-                 />  
-               </el-select> 
-                <!-- <el-input v-model="patternThickness" autocomplete="off" /> -->
-              </el-form-item></div></div>
-          </el-col>
-        </el-row>
-        <el-row style="margin-top: 10px;">
-          <el-col :span="6">
-              <div id="dt" style="font-size: 15px;">
-        <div>
-              <el-form-item :label="$t('basicData.quantitya')" :required="true" style="width: 14vw;">
-                <el-input :placeholder="$t('basicData.selectquantity')" v-model="number" autocomplete="off" />
-              </el-form-item></div></div>
-          </el-col>
-        </el-row>
-        </el-form>
-            </el-form>
-          </div>
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirm">
-          {{ $t('basicData.confirm') }}
-        </el-button>
-        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
-      </div>
-    </template>
-  </el-dialog>
-  <el-dialog v-model="adda" top="30vh" width="25%" :title="$t('basicData.deletemessage')">
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirma">
-          {{ $t('basicData.confirm') }}
-        </el-button>
-        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
-      </div>
-    </template>
-  </el-dialog>
-        </div>
-  <el-dialog v-model="dialogFormVisible" top="24vh" width="50%"  >
+  </div>
+  <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
     <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
-    <el-form-item :label="$t('Mounting.loadingline')" :required="true">
-    <el-select v-model="loadingline" clearable :placeholder="$t('Mounting.inloadingline')"  >
-      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
-      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
-    </el-select>
-              </el-form-item>
+      <el-form-item :label="$t('Mounting.loadingline')" :required="true">
+        <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
+          <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
+          <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item :label="$t('Mounting.projecta')" :required="true">
-        <el-select  
-           v-model="selectedProjectNo"  
-           filterable  
-           clearable  
-           :placeholder="$t('basicData.plselectproject')"
-           style="width: 220px"  
-           @input="handleInputChange"  
-         >  
-      <el-option  
-         v-for="item in titleSelectJson['processType']"  
-         :key="item.id"  
-         :label="item.projectNo"  
-         :value="item.projectNo"  
-      />  
-    </el-select>  
-              </el-form-item>
-          </div>
+        <el-select
+            v-model="selectedProjectNo"
+            filterable
+            clearable
+            :placeholder="$t('basicData.plselectproject')"
+            style="width: 220px"
+            @input="handleInputChange"
+        >
+          <el-option
+              v-for="item in titleSelectJson['engineerId']"
+              :key="item.id"
+              :label="item.projectNo"
+              :value="item.projectNo"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
+        <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
+          <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
+          <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
+          <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+    </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleup">
+        <el-button type="primary" @click="handlesure">
           {{ $t('basicData.confirm') }}
         </el-button>
         <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
       </div>
     </template>
   </el-dialog>
+
 </template>
  
 <style scoped>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
index ecc9fe8..207e536 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
@@ -96,10 +96,14 @@
      * 澶囨敞
      */
     private String notes;
+
     /**
      * 涓婄墖鏈虹嚎璺�
      */
-    private int stationCell;
+    private Integer stationCell;
 
-
+    /**
+     * 闄よ啘鏂瑰紡
+     */
+    private Integer filmRemove;
 }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
index 1e4a478..73f43df 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -1,6 +1,5 @@
 package com.mes.userinfo.service.impl;
 
-import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,7 +24,6 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -72,7 +70,7 @@
 
     @Resource
     BCryptPasswordEncoder passwordEncoder;
-    @Autowired
+    @Resource
     private SysUserRoleMapper sysUserRoleMapper;
 
     @Override
diff --git a/hangzhoumesParent/gateway/src/main/resources/application.yml b/hangzhoumesParent/gateway/src/main/resources/application.yml
index a369150..3a9215b 100644
--- a/hangzhoumesParent/gateway/src/main/resources/application.yml
+++ b/hangzhoumesParent/gateway/src/main/resources/application.yml
@@ -47,7 +47,6 @@
           filters:
             - StripPrefix=2
 
-
         - id: glassStorage
           uri: lb://glassStorage
           predicates:
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
index 5e9e82d..a548f00 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
@@ -69,7 +69,7 @@
         log.info("engineeringId:{}", engineering);
         UpPattenUsage upPattenUsage = upPattenUsageService.selectedEngineering(engineering.getEngineerId());
         if (upPattenUsage != null) {
-            boolean work=engineeringService.changeTask(engineering.getEngineerId(),engineering.getState());
+            boolean work = engineeringService.changeTask(engineering.getEngineerId(), engineering.getState(), engineering.getFilmRemove(), engineering.getStationCell());
             List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
             optimizeProjectService.changeTask(engineering.getEngineerId(), 200);
             return Result.build(200, "宸蹭繚瀛樿繃", work);
@@ -85,7 +85,7 @@
             engineeringService.saveEngineering(listEngineering);
             log.info("鏇存敼pp琛ㄧ姸鎬佷负宸查鍙�");
             //灏唀ngineering琛ㄧ姸鎬佷负姝e湪涓婄墖
-            boolean work=engineeringService.changeTask(engineering.getEngineerId(),engineering.getState());
+            boolean work = engineeringService.changeTask(engineering.getEngineerId(), engineering.getState(), engineering.getFilmRemove(), engineering.getStationCell());
             List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
             optimizeProjectService.changeTask(engineering.getEngineerId(), 200);
             if (work) {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
index 577148c..9300779 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
@@ -32,11 +32,15 @@
      */
     private String engineerId;
 
-
     /**
      * 璁惧
      */
-    private String stationCell;
+    private Integer stationCell;
+
+    /**
+     * 闄よ啘鏂瑰紡
+     */
+    private Integer filmRemove;
 
     /**
      * 宸ョ▼鍚嶇О
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
index 7841c36..6dd056b 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
@@ -54,4 +54,6 @@
     List<Engineering> selectTask();
 
     boolean pauseTask(String engineerId, Integer state);
+
+    boolean changeTask(String engineerId, Integer state, Integer filmRemove, Integer stationCell);
 }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
index 89651e7..2240fc8 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -119,9 +119,14 @@
     public boolean pauseTask(String engineerId, Integer state) {
         //鏆傚仠姝e湪杩涜宸ョ▼
         LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
-        pauseWrapper.set(Engineering::getState,0);
-        pauseWrapper.eq(Engineering::getState,1);
-        return  pauseWrapper.update();
+        pauseWrapper.set(Engineering::getState, 0);
+        pauseWrapper.eq(Engineering::getState, 1);
+        return pauseWrapper.update();
+    }
+
+    @Override
+    public boolean changeTask(String engineerId, Integer state, Integer filmRemove, Integer stationCell) {
+        return false;
     }
 
 }

--
Gitblit v1.8.0