From 7ac0936473cfa23ed0fcb3290d2d12fda1ba2411 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期五, 01 十一月 2024 14:57:36 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes

---
 UI-Project/src/views/Returns/upreturns.vue                                                                                 |  109 ++----
 UI-Project/src/views/GlassStorage/rawfilmstorage.vue                                                                       |  218 +++++++++----
 UI-Project/src/views/Returns/upreturns2.vue                                                                                |  534 +++++++++++++++++++++++++++++++++
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java |    9 
 UI-Project/src/lang/zh.js                                                                                                  |   11 
 UI-Project/src/router/index.js                                                                                             |    5 
 UI-Project/src/views/User/permissions.vue                                                                                  |    2 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java          |   12 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java                  |   10 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml                                     |    2 
 10 files changed, 771 insertions(+), 141 deletions(-)

diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index 45bec92..764f1f3 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -546,7 +546,16 @@
       },
       film:{
           mes:'鍘熺墖浠撳偍璇︽儏',
-          warehousing:'鍏ュ簱',
+          warehousing:'鍘熺墖鍏ュ簱',
+          pwarehousing:'鍏ュ簱璇锋眰',
+          wareout:'鍘熺墖鍑哄簱',
+          information:'鏄惁鍑哄簱璇ユ潯淇℃伅锛�',
+          pwareout:'鍑哄簱璇锋眰',
+          position:'鍚婅浣嶏細',
+          cposition:'璇烽�夋嫨鍚婅浣�',
+          position1:'鍚婅浣�1',
+          position2:'鍚婅浣�2',
+          addglass:'鍘熺墖淇℃伅',
           operate: '鎿嶄綔',
           exit:'缂栬緫',
           delete:'鍒犻櫎',
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 96eb368..1b60f11 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -85,6 +85,11 @@
             name: 'upreturns',
             component: () => import('../views/Returns/upreturns.vue')
           },
+          {
+            path: '/Returns/upreturns2',
+            name: 'upreturns2',
+            component: () => import('../views/Returns/upreturns2.vue')
+          },
         ]
       },
       /*----------- 鎺扮墖/璇嗗埆 ----------------*/
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
index a95b7f1..f81a1eb 100644
--- a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -17,6 +17,8 @@
 const dialogFormVisiblea = ref(false)
 const dialogFormVisibleb = ref(false)
 const dialogFormVisiblec = ref(false)
+const dialogFormVisiblee = ref(false)
+const Edit = ref(false)
 const timeRange = ref(["2022-01-01 00:00:00", "2025-01-01 00:00:00"])
 const selectValuesa = reactive([]);
   const patternWidth = ref('');
@@ -25,15 +27,17 @@
   const filmsId = ref('');
   const remainQuantity = ref('');
   const slot = ref('');
+  const leftingStation = ref('');
+const loadingline = ref('');
   let webSocket: WebSocket | null = null;  
 const value = ref('')
 const options = [
   {
-    value: 1,
+    value: 98,
     label: t('film.warehousing1'),
   },
   {
-    value: 2,
+    value: 99,
     label: t('film.warehousing2'),
   }
 ]
@@ -59,7 +63,6 @@
   // console.log("--------------webSocket")
     socket = initializeWebSocket(socketUrl, handleMessage);
 });
- 
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
 const handleMessage = (data) => {
@@ -68,27 +71,21 @@
   }
   if(data.rawStationDetailsList !=null){
   tableDatab.value = data.rawStationDetailsList[0]
+  console.log(tableDatab.value);
   }
 };
-// 淇敼鏁伴噺
-const handleConfirmb = async () => {
-  let slotId = window.localStorage.getItem('slotId')
-  try {
-    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
-      slotId: slotId,
-      remainQuantity: remainQuantity.value,
-  }
-  ); 
-    if (response.code === 200) {
-      ElMessage.success(response.message);
-      dialogFormVisiblec.value = false;
-      tableDatab.value = response.data;
-    } else {
-      ElMessage.error(response.message);
-    }
-  } catch (error) {
-    console.error(error);
-  }
+const handleEdit = (row) => {
+  window.localStorage.setItem('slotId', row.slotId)
+  Edit.value = true;
+};
+const handleBinda = (row) => {
+  dialogFormVisibleb.value = true;
+};
+const handleBindc = (row) => {
+  dialogFormVisiblec.value = true;
+};
+const handleBinde = (row) => {
+  dialogFormVisiblee.value = true;
 };
   // 鍒犻櫎 
  const deleteWarehousing = async(row) => {  
@@ -116,8 +113,72 @@
   } catch (error) {
     console.error('鍙戠敓閿欒:', error);  
   }  
-};  
- 
+};
+// 鍘熺墖鍏ュ簱
+const handleup = async () => {
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternWarehousing', {
+      patternWidth: patternWidth.value,
+      patternHeight: patternHeight.value,
+      patternThickness: patternThickness.value,
+      filmsId: filmsId.value,
+      remainQuantity: remainQuantity.value,
+      slot: slot.value,
+    }); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      dialogFormVisibleb.value = false;
+      patternWidth.value = '';
+      patternHeight.value = '';
+      patternThickness.value = '';
+      filmsId.value = '';
+      remainQuantity.value = '';
+      slot.value = '';
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+// 鍏ュ簱璇锋眰
+const handleupc = async () => {
+  try  {
+    var url="/glassStorage/rawGlassStorageDetails/warehousingRequest?leftingStation="+leftingStation.value;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblec.value = false;
+      leftingStation.value = '';
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+// 鍑哄簱璇锋眰
+const handleupe = async () => {
+  try  {
+    var url="/glassStorage/rawGlassStorageDetails/outWarehousingRequest?leftingStation="+leftingStation.value;
+      const response = await request.post(url)
+    if (response.code == 200) {
+      ElMessage.success(response.message);
+      dialogFormVisiblee.value = false;
+      leftingStation.value = '';
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
   // 鍑哄簱 
   const openc = async(row) => {  
   try {
@@ -172,33 +233,6 @@
     ElMessage.error(response.message);
   }
 };
-// 鍏ュ簱 
-const handleConfirma = async () => {
-  try {
-    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternWarehousing', {
-      patternWidth: patternWidth.value,
-      patternHeight: patternHeight.value,
-      patternThickness: patternThickness.value,
-      filmsId: filmsId.value,
-      remainQuantity: remainQuantity.value,
-      slotId: slot.value,
-    }); 
-    if (response.code === 200) {
-      ElMessage.success(response.message);
-      dialogFormVisibleb.value = false;
-      patternWidth.value = '';
-      patternHeight.value = '';
-      patternThickness.value = '';
-      filmsId.value = '';
-      remainQuantity.value = '';
-      slot.value = '';
-    } else {
-      ElMessage.error(response.message);
-    }
-  } catch (error) {
-    console.error(error);
-  }
-};
 // 鏄惁绂佺敤
 const toggleEnableState = async (row: any) => {
   if (!row.deviceId) {  
@@ -220,9 +254,25 @@
     ElMessage.error(t('basicData.glassnull'));
   }
 };
-const handleEdit = (row) => {
-  window.localStorage.setItem('slotId', row.slotId)
-  dialogFormVisiblec.value = true;
+// 淇敼鏁伴噺
+const Editclick = async () => {
+  let slotId = window.localStorage.getItem('slotId')
+  try {
+    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
+      slotId: slotId,
+      remainQuantity: remainQuantity.value,
+  }
+  ); 
+    if (response.code === 200) {
+      ElMessage.success(response.message);
+      Edit.value = false;
+      tableDatab.value = response.data;
+    } else {
+      ElMessage.error(response.message);
+    }
+  } catch (error) {
+    console.error(error);
+  }
 };
 function getStatusType1(taskType) {  
 switch (taskType) {  
@@ -277,7 +327,9 @@
   <div>
   <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">  
     <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisiblea = true">{{ $t('film.mes') }}</el-button>
-  <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('film.warehousing') }}</el-button>
+  <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinda">{{ $t('film.warehousing') }}</el-button>
+  <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindc">{{ $t('film.pwarehousing') }}</el-button>
+  <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinde">{{ $t('film.pwareout') }}</el-button>
     <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="datetimerange"
         format="YYYY/MM/DD HH:mm:ss"  
         value-format="YYYY-MM-DD HH:mm:ss"
@@ -327,19 +379,17 @@
     </template> 
         </el-table-column>
           <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" />
-          
         </el-table>
       </div>
     </el-card>
     <div class="awatch">
     <img src="../../assets/ypcc.png" alt="" style="width: 100%;height: 120%;margin-left: 10px;position: relative;margin-top: -20px;"> 
-    
 </div>
     <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%" >
     <el-table  ref="table" style="margin-top: 20px;height: 700px;"
         :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80"/>
-          <el-table-column prop="slotId" fixed align="center" :label="$t('film.slot')" min-width="80"/>
+          <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="80"/>
           <el-table-column prop="patternWidth" align="center" :label="$t('film.width')"  min-width="80" />
           <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
           <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
@@ -362,14 +412,14 @@
           </el-table-column>
           <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
             <template #default="scope">
-              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
-              <el-button size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button>
-              <el-button size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
+              <el-button :disabled="!scope.row.remainQuantity" size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
+              <el-button :disabled="!scope.row.remainQuantity" size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button>
+              <el-button :disabled="!scope.row.remainQuantity || scope.row.remainQuantity === 0" size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
             </template>
         </el-table-column>
         </el-table>
 </el-dialog>
-<el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('basicData.addglass')" >
+<el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('film.addglass')" >
     <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
             <el-form  size="mini" label-width="150px">
       <el-form label-width="100px" label-position="right">
@@ -438,14 +488,50 @@
           </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirma">
+        <el-button type="primary" @click="handleup">
           {{ $t('basicData.confirm') }}
         </el-button>
         <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
       </div>
     </template>
   </el-dialog>
-<el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%">
+<el-dialog v-model="dialogFormVisiblec" top="24vh" width="30%" :title="$t('film.pwarehousing')">
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+    <el-form-item :label="$t('film.position')" :required="true">
+    <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;" >
+      <el-option :label="$t('film.position1')" value="98"></el-option>
+      <el-option :label="$t('film.position2')" value="99"></el-option>
+    </el-select>
+    </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleupc">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblec = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+<el-dialog v-model="dialogFormVisiblee" top="24vh" width="30%" :title="$t('film.pwareout')">
+    <div style="margin-left: 50px;margin-bottom: 10px;">
+    <el-form-item :label="$t('film.position')" :required="true">
+    <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;" >
+      <el-option :label="$t('film.position1')" value="98"></el-option>
+      <el-option :label="$t('film.position2')" value="99"></el-option>
+    </el-select>
+    </el-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleupe">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+  <el-dialog v-model="Edit" top="21vh" width="40%">
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
       <el-form size="mini" label-width="100px">
         <el-form label-width="210px" label-position="right">
@@ -457,10 +543,10 @@
     </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="handleConfirmb">
+        <el-button type="primary" @click="Editclick">
           {{ $t('reportWork.sure') }}
         </el-button>
-        <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
+        <el-button @click="Edit = false">{{ $t('reportWork.cancel') }}</el-button>
       </div>
     </template>
   </el-dialog>
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
index 1d25199..941cb20 100644
--- a/UI-Project/src/views/Returns/upreturns.vue
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -1,16 +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"
-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(''); // 褰撳墠閫変腑鐨勪笂鐗囩嚎
@@ -59,12 +57,16 @@
 };
 const selectproject = () => {
   dialogFormVisible.value = true;
+  selectgong();
 };
  
  
 onMounted(() => {
-  // socket = initializeWebSocket(socketUrl, handleMessage);
+  socket = initializeWebSocket(socketUrl, handleMessage);
 });
+const handleMessage = (data) => {
+
+}
   onUnmounted(() => {
     if (socket) {
     closeWebSocket(socket);
@@ -72,68 +74,43 @@
     });
 //瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
 const titleSelectJson = ref({
-  processType: [],
-})
-const titleSelectJsona = ref({
-  processTypea: [],
+  engineerId: [],
 })
 let socket = null;
-const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/uploadGlass`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
- 
-const requestData = {  
-  state: 100  
-};  
- 
  
 onBeforeUnmount(() => {
   closeWebSocket();
 });
+const selectgong = async () => {
+  try {
+    const response = await request.post('/loadGlass/engineering/engineering/selectTask')
+    if (response.code == 200) {
+      titleSelectJson.value.engineerId = response.data;
+    } 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 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);
-    }
-  }
-    else  {
-      ElMessage({
-        type: 'info',
-        message: t('basicData.infonull'),
-      })
-    }
-}
-catch (error) {
-    // 澶勭悊閿欒
-    console.error(error);
-  }
-}
+
 function getStatusText(state: number) {
   switch (state) {
-    case 0:  
+    case 0:
       return t('basicData.waiting');
-    case 1:  
+    case 1:
       return t('basicData.up');
-    case 2:  
-    return t('basicData.up');
+    case 2:
+      return t('basicData.up');
     case 100:  
     return t('basicData.finish');
   }  
@@ -163,11 +140,7 @@
   blindb.value = true; 
 };
  
-// 鍒犻櫎
-const handleBindRacka = (row) => {
-  workstationId.value = row.workstationId;
-  adda.value = true; 
-};
+
 const toggleEnableState = async (row: any) => {  
   // 妫�鏌� id 鏄惁涓虹┖  
   if (!row.id) {  
@@ -486,13 +459,13 @@
            :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-option
+              v-for="item in titleSelectJson['engineerId']"
+              :key="item.id"
+              :label="item.engineerId"
+              :value="item.engineerId"
+          />
     </el-select>  
               </el-form-item>
           </div>
diff --git a/UI-Project/src/views/Returns/upreturns2.vue b/UI-Project/src/views/Returns/upreturns2.vue
new file mode 100644
index 0000000..fd2145d
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturns2.vue
@@ -0,0 +1,534 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} 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 request from "@/utils/request"
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
+const selectValuesa = reactive([]);
+const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
+const loadingline = 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 handlezhiban = () => {
+  dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+const selectproject = () => {
+  dialogFormVisible.value = true;
+};
+ 
+ 
+onMounted(() => {
+  // socket = initializeWebSocket(socketUrl, handleMessage);
+});
+  onUnmounted(() => {
+    if (socket) {
+    closeWebSocket(socket);
+    }
+    });
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+  processType: [],
+})
+const titleSelectJsona = ref({
+  processTypea: [],
+})
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+ 
+const requestData = {  
+  state: 100  
+};  
+ 
+ 
+onBeforeUnmount(() => {
+  closeWebSocket();
+});
+// 娣诲姞
+const handleBindRack = (row) => {
+  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
+  ida.value = row.id;
+  add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 鏆傚仠
+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);
+    }
+  }
+    else  {
+      ElMessage({
+        type: 'info',
+        message: t('basicData.infonull'),
+      })
+    }
+}
+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 handleBind = (row) => {
+  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) => {  
+  // 妫�鏌� 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'));   
+  }  
+};
+</script>
+<template>
+  <div>
+    <div id="dotClass">
+      <div>{{ $t('basicData.laserprinting') }}</div>  
+    <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{ $t('basicData.yes') }}</el-button>
+    <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
+    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.yes') }}</el-button>
+    <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-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 v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-top: 5px;margin-left: 20px;" >
+      <el-option :label="$t('Mounting.waiting')" value="1"></el-option>
+      <el-option :label="$t('film.execution')" value="2"></el-option>
+      <el-option :label="$t('film.finish')" value="3"></el-option>
+    </el-select>
+    <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</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"
+    >
+      <el-table-column prop="layoutSequence" :label="$t('Mounting.project')" width="100" align="center"/>
+      <el-table-column prop="engineeringId" :label="$t('Mounting.width')" width="200" align="center"/>
+      <el-table-column prop="width" :label="$t('Mounting.height')" align="center"/>
+      <el-table-column prop="height" :label="$t('Mounting.thickness')" align="center"/>
+      <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/>
+      <el-table-column :label="$t('Mounting.projectnumber')" align="center">  
+      <template #default="{ row }">  
+        <!-- 杩欓噷鎬绘槸鏄剧ず 1 -->  
+        <span>{{ 1 }}</span>  
+      </template>  
+    </el-table-column>  
+      <el-table-column
+          align="center"
+            :label="$t('Mounting.state')"
+            min-width="80"
+            prop="state"
+          >
+          <template #default="scope">  
+          <el-tag  
+            :type="scope.row.state === 100 ? 'success' : 'warning'"  
+            @click="toggleEnableState(scope.row)"  
+          >  
+            {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
+          </el-tag>  
+        </template> 
+          </el-table-column>
+      <el-table-column prop="filmsId" :label="$t('Mounting.createtime')" align="center"/>
+    </el-table>
+      </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>
+</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">
+          {{ $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-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>
+      </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-form-item>
+    </div>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+      </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 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.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>
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleup">
+          {{ $t('basicData.confirm') }}
+        </el-button>
+        <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+ 
+<style scoped>
+ .flex-container {  
+  display: flex;  
+  align-items: center; /* 鍨傜洿灞呬腑 */  
+}  
+.flex-container .el-form-item {  
+  flex: 1; /* 浣挎瘡涓〃鍗曢」鍗犳嵁鐩哥瓑鐨勭┖闂� */  
+  margin-right: 0; /* 绉婚櫎榛樿鐨勫彸渚ц竟璺� */  
+}  
+.flex-container .el-form-item:last-child {  
+  margin-left: 20px; /* 涓虹浜屼釜琛ㄥ崟椤规坊鍔犲乏渚ц竟璺� */  
+}
+ 
+ 
+ 
+#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
+#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
+#dialog-footer{
+  text-align: center;
+  margin-top: -15px;
+}
+#dotClass {
+  display: flex;
+  margin-left: 20px; 
+  size: 50px;
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/User/permissions.vue b/UI-Project/src/views/User/permissions.vue
index b2f373d..64f41a6 100644
--- a/UI-Project/src/views/User/permissions.vue
+++ b/UI-Project/src/views/User/permissions.vue
@@ -273,7 +273,7 @@
                 <el-table  
                   :data="props.row.children"  
                   border
-                  style="width: 100%;margin-left: 20px;"  
+                  style="width: 100%;margin-left: 120px;"  
                   row-key="id"  
                   :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" 
                 >  
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 c9321fa..577148c 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
@@ -24,13 +24,19 @@
     /**
      * 宸ョ▼琛╥d
      */
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
      * 宸ョ▼鍙�
      */
-    private String  engineerId;
+    private String engineerId;
+
+
+    /**
+     * 璁惧
+     */
+    private String stationCell;
 
     /**
      * 宸ョ▼鍚嶇О
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 23b8d67..7841c36 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
@@ -26,17 +26,29 @@
      * @return List<Engineering>
      */
     List<Engineering> selectEngineering(String engineeringId);
+
     /**
      * 淇濆瓨閽㈠寲淇℃伅
      */
     void saveEngineering(List<Engineering> engineering);
+
     /**
      * 鏌ヨ鏄惁鏈変笂鐗囦换鍔�
+     *
      * @return Engineering
      */
     Engineering selectInitiate(Integer state);
+
+    /**
+     * 鏌ヨ鏄惁鏈変笂鐗囦换鍔w
+     *
+     * @return Engineering
+     */
+    Engineering selectUpInitiate(Integer state, Integer equipmentId);
+
     /**
      * 鏌ヨ涓婄墖浠诲姟
+     *
      * @return Engineering
      */
     List<Engineering> selectTask();
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 3b1819f..89651e7 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
@@ -95,14 +95,19 @@
     }
 
     @Override
-    public  Engineering selectInitiate(Integer state) {
+    public Engineering selectInitiate(Integer state) {
         //鏌ヨ鏄惁鏈夊紑濮嬩笂鐗囩殑宸ョ▼浠诲姟
         QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
-            wrapper.eq("state", state);
+        wrapper.eq("state", state);
         return engineeringMapper.selectOne(wrapper);
     }
 
     @Override
+    public Engineering selectUpInitiate(Integer state, Integer equipmentId) {
+        return null;
+    }
+
+    @Override
     public List<Engineering> selectTask() {
         //鏌ヨ鍙紑濮嬩换鍔$殑宸ョ▼
         QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml
index d4558c8..e7d0a13 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application-dev.yml
@@ -5,7 +5,7 @@
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
         hangzhoumes:
-          url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver

--
Gitblit v1.8.0