From ec4752a2780a1336bbdca510e6888423a794c16d Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 02 八月 2024 09:23:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/StorageTaskMapper.xml | 15
UI-Project/src/views/Returns/returns.vue | 75 +
hangzhoumesParent/gateway/src/main/resources/application.yml | 2
UI-Project/src/views/Identify/identify.vue | 22
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/controller/StorageTaskController.java | 17
UI-Project/src/views/Caching/cachingbefore.vue | 13
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/StorageTask.java | 11
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/ShelfRackMapper.xml | 29
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/controller/RawUsageController.java | 31
hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java | 12
UI-Project/src/utils/api.js | 190 +++++
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/entity/LoadPosition.java | 8
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java | 107 ++
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java | 3
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 10
UI-Project/src/views/Caching/cachingun.vue | 14
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/entity/RawUsage.java | 7
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/ShelfRack.java | 9
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java | 77 ++
UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue | 13
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java | 3
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java | 76 ++
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/StorageTaskService.java | 5
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/ShelfRackService.java | 3
UI-Project/src/views/largescreen/largescreen.vue | 14
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java | 54 +
UI-Project/src/views/StockBasicData/stockBasicData.vue | 17
UI-Project/src/views/UnLoadGlass/Landingindication.vue | 13
UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue | 16
UI-Project/src/lang/zh.js | 1
UI-Project/src/views/ReportWork/reportWork.vue | 16
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java | 3
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java | 102 ++
UI-Project/src/views/Slicecage/slicecage.vue | 83 +
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java | 2
UI-Project/src/views/GlassStorage/MaterialRackManagement.vue | 1050 +++++++++++++++++----------
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/RawUsageService.java | 19
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue | 14
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java | 10
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java | 3
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 10
41 files changed, 1,622 insertions(+), 557 deletions(-)
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index c04c3a4..d2c352b 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -219,6 +219,7 @@
team:'鐝粍',
basic:'璁惧',
add:'纭淇濆瓨',
+ cancel:'鍙栨秷',
},
workOrder:{
glassID:'鐜荤拑ID',
diff --git a/UI-Project/src/utils/api.js b/UI-Project/src/utils/api.js
index c8674a7..9be06af 100644
--- a/UI-Project/src/utils/api.js
+++ b/UI-Project/src/utils/api.js
@@ -1,14 +1,42 @@
// src/services/api.js
-import request from 'request';
+import request from '../utils/request';
+import { ElMessage } from 'element-plus';
+ // Replace with your actual backend base URL
-export const findTasks = (id, newState) => {
+// Function to find list of raw usages
+const BASE_URL = 'glassStorage/api/rawUsage';
+const taskBASE_URL = 'glassStorage/api/storageTask';
+
+export const findTasks = () => {
const url = `glassStorage/api/storageTask/findTasks`;
const options = {
- method: 'POST',
+ method: 'get',
url,
json: true,
- body: { id, enableState: newState }
+
+ };
+
+ return new Promise((resolve, reject) => {
+ request(options, (error, response, body) => {
+ if (error) {
+ reject(new Error(error.message));
+ } else {
+ resolve(body);
+ }
+ });
+ });
+};
+
+
+
+export const findList = (params) => {
+ const url = `${BASE_URL}/findList`;
+ const options = {
+ method: 'post',
+ url,
+ json: true,
+ body: params
};
return new Promise((resolve, reject) => {
@@ -21,3 +49,157 @@
});
});
};
+
+// Function to find raw usage by ID
+export const findById = (id) => {
+ const url = `${BASE_URL}/${id}`;
+ const options = {
+ method: 'get',
+ url,
+ json: true
+ };
+
+ return new Promise((resolve, reject) => {
+ request(options, (error, response, body) => {
+ if (error) {
+ reject(new Error(error.message));
+ } else {
+ resolve(body);
+ }
+ });
+ });
+};
+
+// Function to insert a new raw usage
+export const insertRawUsage = (rawUsage) => {
+ const url = `${BASE_URL}`;
+ const options = {
+ method: 'post',
+ url,
+ json: true,
+ body: rawUsage
+ };
+
+ return new Promise((resolve, reject) => {
+ request(options, (error, response, body) => {
+ if (error) {
+ reject(new Error(error.message));
+ } else {
+ resolve(body);
+ }
+ });
+ });
+};
+
+
+export const updateRawUsage = async (rawUsage) => {
+ try {
+ const response = await request.post(`${BASE_URL}/updaterawUsage`, rawUsage);
+ ElMessage.success('淇敼鎴愬姛');
+ return response.data;
+ } catch (error) {
+ ElMessage.error('淇敼澶辫触');
+ throw error;
+ }
+};
+
+export const deleteRawUsage = async (id) => {
+ try {
+ const response = await request.post(`${BASE_URL}/id`, id);
+ ElMessage.success('鍒犻櫎鍘熷浣跨敤鏁版嵁鎴愬姛');
+ return response.data;
+ } catch (error) {
+ ElMessage.error('鍒犻櫎鍘熷浣跨敤鏁版嵁澶辫触');
+ throw error;
+ }
+};
+
+export const inStorage = async (RawUsageAndShelfRack) => {
+ try {
+ const response = await request.post(`${BASE_URL}/inStorage`, RawUsageAndShelfRack);
+ ElMessage.success('鍏ュ簱鎿嶄綔鎴愬姛');
+ return response.data;
+ } catch (error) {
+ ElMessage.error('鍏ュ簱鎿嶄綔澶辫触');
+ throw error;
+ }
+};
+
+export const outStorage = async (RawUsageAndShelfRack) => {
+ try {
+ const response = await request.post(`${BASE_URL}/outStorage`, RawUsageAndShelfRack);
+ ElMessage.success('鍑哄簱鎿嶄綔鎴愬姛');
+ return response.data;
+ } catch (error) {
+ ElMessage.error('鍑哄簱鎿嶄綔澶辫触');
+ throw error;
+ }
+};
+
+
+
+export const taskUpdate = async (task) => {
+ try {
+ const response = await request.post(`${taskBASE_URL}/taskUpdate`, task);
+
+ return response.data;
+ } catch (error) {
+
+ throw error;
+ }
+};
+
+
+
+
+
+
+const API_URL = 'glassStorage/api/shelfRack'; // Adjust this based on your actual API URL
+
+export const shelfRackfindList = (params) => {
+ return request.post(`${API_URL}/findList`, params)
+ .then(response => response.data)
+ .catch(error => {
+ throw error; // Handle errors appropriately in your frontend
+ });
+};
+
+export const shelfRackfindById = (id) => {
+ return request.get(`${API_URL}/${id}`)
+ .then(response => response.data)
+ .catch(error => {
+ throw error;
+ });
+};
+
+export const insertShelfRack = (shelfRack) => {
+ return request.post(`${API_URL}`, shelfRack)
+ .then(response => response.data)
+ .catch(error => {
+ throw error;
+ });
+};
+
+export const updateShelfRack = (shelfRack) => {
+ return request.put(`${API_URL}`, shelfRack)
+ .then(response => response.data)
+ .catch(error => {
+ throw error;
+ });
+};
+
+export const shelfRackdeleteById = (id) => {
+ return request.delete(`${API_URL}/${id}`)
+ .then(response => response.data)
+ .catch(error => {
+ throw error;
+ });
+};
+
+export const findShelfRack = () => {
+ return request.get(`${API_URL}/findshelfrack`)
+ .then(response => response.data)
+ .catch(error => {
+ throw error;
+ });
+};
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 6c9510b..e4c67f3 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -7,7 +7,7 @@
import { WebSocketHost ,host} from '@/utils/constants'
import request from "@/utils/request"
-import { ref, onMounted , onBeforeUnmount} from "vue";
+import { ref, onMounted , onBeforeUnmount,onUnmounted} from "vue";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
@@ -77,6 +77,7 @@
console.error('鍙戠敓閿欒:', error);
}
};
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
@@ -92,11 +93,13 @@
};
// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
- // fetchFlowCardId();
- // fetchTableData(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
-
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 2ce7900..737c1de 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -60,7 +60,7 @@
const adda = ref(false)
import { WebSocketHost ,host} from '@/utils/constants'
import request from "@/utils/request"
-import { ref, onMounted , onBeforeUnmount} from "vue";
+import { ref, onMounted , onBeforeUnmount,onUnmounted} from "vue";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
@@ -205,6 +205,7 @@
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/downcache`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
@@ -219,13 +220,14 @@
}));
};
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
- // fetchFlowCardId();
- // fetchTableData(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
-
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
index 7f2375c..c41ce56 100644
--- a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
+++ b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
@@ -1,119 +1,174 @@
<template>
- <div class="app-container" style="height: 600px;">
- <!-- <el-card style="flex: 1; margin-left: 10px; " :loading="loading"> -->
- <div slot="header" class="clearfix" style="display: flex; align-items: center;">
-<!-- 宸︿晶鎸夐挳缁� -->
-<div >
- <el-button type="success" size="mini" style="margin-left: 10px;" @click="storage()">鍘熺墖浠撳偍璇︽儏</el-button>
- <el-button type="success" size="mini" @click="handleInbound()">鍏ュ簱</el-button>
- <el-button type="success" size="mini" >鍚婅浣嶅叆搴�</el-button>
-</div>
-<!-- 鍙充晶閫夋嫨妗� -->
-<el-form-item style="margin-top: 15px; width: 150px;margin-left: 10px;">
- <el-select v-model="formData2.dzw" placeholder="璇烽�夋嫨鍚婅浣�">
- <el-option label="鍚婅浣�1" value="鍚婅浣�1"></el-option>
- <el-option label="鍚婅浣�2" value="鍚婅浣�2"></el-option>
- <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
- </el-select>
-</el-form-item>
-</div>
-<el-dialog v-model="Hidden" top="10vh" width="80%" >
+ <div class="app-container">
+ <el-card style="flex: 1; margin-left: 10px" :loading="loading">
+ <div
+ slot="header"
+ class="clearfix"
+ style="display: flex; align-items: center"
+ >
+ <!-- 宸︿晶鎸夐挳缁� -->
+ <div>
+ <el-button type="success" size="mini" @click="storage()"
+ >鍘熺墖浠撳偍璇︽儏</el-button
+ >
+ <el-button type="success" size="mini" @click="handleInbound()"
+ >鍏ュ簱</el-button
+ >
+ <el-button type="success" size="mini">鍚婅浣嶅叆搴�</el-button>
+ </div>
+
+ <!-- 鍙充晶閫夋嫨妗� -->
+ <el-form-item style="margin-top: 15px; width: 150px">
+ <el-select v-model="formData2.dzw" placeholder="璇烽�夋嫨鍚婅浣�">
+ <el-option label="鍚婅浣�1" value="鍚婅浣�1"></el-option>
+ <el-option label="鍚婅浣�2" value="鍚婅浣�2"></el-option>
+ <!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
+ </el-select>
+ </el-form-item>
+ </div>
+ <el-dialog v-model="Hidden" top="10vh" width="80%">
+ <el-table
+ :data="tableData"
+ v-model="dialogVisible3"
+ style="width: 98%; height: 200px"
+ @selection-change="handleSelectionChange"
+ :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
+ ref="table"
+ empty-text="No Data"
+ >
+ <el-table-column prop="number" label="搴撲綅鍙�"></el-table-column>
+ <el-table-column prop="rawType" label="绫诲瀷"></el-table-column>
+ <el-table-column prop="rawWidth" label="闀垮害(mm)"></el-table-column>
+ <el-table-column prop="rawHeight" label="楂樺害(mm)"></el-table-column>
+ <el-table-column
+ prop="rawThickness"
+ label="鍘氬害(mm)"
+ ></el-table-column>
+ <el-table-column prop="pieces" label="鏁伴噺"></el-table-column>
+ <el-table-column prop="createTime" label="鍏ュ簱鏃堕棿"></el-table-column>
+ <el-table-column prop="batchId" label="鎵规鍙�"></el-table-column>
+
+ <el-table-column
+ align="center"
+ label="鏂欐灦鐘舵��"
+ min-width="80"
+ prop="enableState"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="getTagType(scope.row.enableState)"
+ @click="toggleStatus(scope.row)"
+ >
+ {{ scope.row.enableState === 1 ? "鍚敤" : "鏈惎鐢�" }}
+ </el-tag>
+ </template>
+ </el-table-column>
+
+ <!-- 鎿嶄綔鍒� -->
+ <el-table-column label="鎿嶄綔" width="250">
+ <template #default="{ row }">
+ <el-button
+ type="primary"
+ size="mini"
+ @click="edithandleRowClick(row)"
+ >淇敼</el-button
+ >
+ <el-button type="danger" size="mini" @click="handleDelete(row)"
+ >鍒犻櫎</el-button
+ >
+ <el-button type="warning" size="mini" @click="handleCheckout(row)"
+ >鍑哄簱</el-button
+ >
+ <!-- <el-button type="success" size="mini" @click="addglass()">娣诲姞鍘熺墖</el-button> -->
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination
+ v-if="totalItems > 0"
+ background
+ layout="prev, pager, next"
+ :total="totalItems"
+ :page-size="pageSize"
+ @current-change="handleCurrentChange"
+ ></el-pagination>
+ </el-dialog>
+
<el-table
- :data="tableData" v-model="dialogVisible3"
- style="width: 98%; height: 500px"
+ :data="tasktableData"
+ style="width: 98%; height: 150px"
@selection-change="handleSelectionChange"
:header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
ref="table"
empty-text="No Data"
>
- <el-table-column prop="location" align="center" label="搴撲綅鍙�"></el-table-column>
- <el-table-column prop="type" align="center" label="绫诲瀷"></el-table-column>
- <el-table-column prop="length" align="center" label="闀垮害(mm)"></el-table-column>
- <el-table-column prop="height" align="center" label="楂樺害(mm)"></el-table-column>
- <el-table-column prop="thickness" align="center" label="鍘氬害(mm)"></el-table-column>
- <el-table-column prop="quantity" align="center" label="鏁伴噺"></el-table-column>
- <el-table-column prop="entry_time" align="center" min-width="180" label="鍏ュ簱鏃堕棿"></el-table-column>
- <el-table-column prop="batchnumber" align="center" label="鎵规鍙�"></el-table-column>
+ <template #header>
+ <div style="display: flex; align-items: center">
+ <span style="font-size: 16px; font-weight: bold; margin-right: 20px"
+ >浠诲姟鍒楄〃</span
+ >
+ </div>
+ </template>
+ <el-table-column prop="id" label="Glassid"></el-table-column>
+ <el-table-column
+ prop="taskType"
+ label="浠诲姟鎻忚堪"
+ width="250"
+ :formatter="formatTaskType"
+ ></el-table-column>
+ <el-table-column
+ prop="rawThickness"
+ label="鐜荤拑鍘氬害"
+ ></el-table-column>
+ <el-table-column prop="color" label="鐜荤拑鑶滅郴"></el-table-column>
+ <el-table-column prop="startTime" label="鍒涘缓鏃堕棿"></el-table-column>
+
<el-table-column
align="center"
- label="鏂欐灦鐘舵��"
+ label="浠诲姟鐘舵��"
min-width="80"
- prop="shelf_status"
+ prop="taskState"
>
- <template #default="scope">
- <el-tag :type="getTagType(scope.row.shelf_status)" @click="toggleStatus(scope.row)">
- {{ scope.row.shelf_status === 1 ? '鍚敤' : '鏈惎鐢�' }}
- </el-tag>
- </template>
- </el-table-column>
+ <template #default="scope">
+ <el-tag :type="getTagType2(scope.row.taskState)">
+ {{ scope.row.taskState == "completed" ? "瀹屾垚" : "杩涜涓�" }}
+ </el-tag>
+ </template>
+ </el-table-column>
+
<!-- 鎿嶄綔鍒� -->
- <el-table-column label="鎿嶄綔" align="center" width="250">
+ <el-table-column label="鎿嶄綔" width="350">
<template #default="{ row }">
- <el-button type="primary" size="mini" @click="edithandleRowClick(row)">淇敼</el-button>
- <el-button type="danger" size="mini" @click="handleDelete(row)">鍒犻櫎</el-button>
- <el-button type="warning" size="mini" @click="handleCheckout(row)">鍑哄簱</el-button>
- <!-- <el-button type="success" size="mini" @click="addglass()">娣诲姞鍘熺墖</el-button> -->
+ <el-button type="primary" size="mini" @click="handleRestart(row)"
+ >閲嶆柊寮�濮�</el-button
+ >
+ <el-button type="danger" size="mini" @click="handleDeletetask(row)"
+ >鍒犻櫎浠诲姟</el-button
+ >
+ <el-button type="success" size="mini" @click="handleComplete(row)"
+ >浠诲姟瀹屾垚</el-button
+ >
</template>
</el-table-column>
</el-table>
- <el-pagination
- v-if="totalItems > 0"
- background
- layout="prev, pager, next"
- :total="totalItems"
- :page-size="pageSize"
- @current-change="handleCurrentChange"
- ></el-pagination>
- </el-dialog>
- <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading">
- <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
- <el-table
- :data="tasktableData"
- height="240"
- @selection-change="handleSelectionChange"
- :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
- ref="table"
- empty-text="No Data"
- >
- <template #header>
- <div style="display: flex; align-items: center;">
- <span style="font-size: 16px; font-weight: bold; margin-right: 20px;">浠诲姟鍒楄〃</span>
- </div>
- </template>
- <el-table-column prop="Glassid" label="Glassid"></el-table-column>
- <el-table-column prop="taskDescription" label="浠诲姟鎻忚堪" width="250"></el-table-column>
- <el-table-column prop="glassThickness" label="鐜荤拑鍘氬害"></el-table-column>
- <el-table-column prop="glassFilm" label="鐜荤拑鑶滅郴"></el-table-column>
- <el-table-column prop="creationTime" label="鍒涘缓鏃堕棿"></el-table-column>
- <el-table-column
- align="center"
- label="浠诲姟鐘舵��"
- min-width="80"
- prop="taskStatus"
- >
- <template #default="scope">
- <el-tag :type="getTagType2(scope.row.taskStatus)">
- {{ scope.row.taskStatus == 'completed' ? '瀹屾垚' : '杩涜涓�' }}
- </el-tag>
- </template>
- </el-table-column>
- <!-- 鎿嶄綔鍒� -->
- <el-table-column label="鎿嶄綔" width="350">
- <template #default="{ row }">
- <el-button type="primary" size="mini" @click="handleRestart(row)">閲嶆柊寮�濮�</el-button>
- <el-button type="danger" size="mini" @click="handleDeletetask(row)">鍒犻櫎浠诲姟</el-button>
- <el-button type="success" size="mini" @click="handleComplete(row)">浠诲姟瀹屾垚</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-card>
- <!-- </el-card> -->
- <div class="img-ypcc" >
- <div class="img-car1" :style="'z-index:999;left:397px;top:205px;position:absolute;'">
- <div v-show="cellshow1" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
+ </el-card>
+
+ <div class="img-ypcc">
+ <div
+ class="img-car1"
+ :style="'z-index:999;left:397px;top:205px;position:absolute;'"
+ >
+ <div
+ v-show="cellshow1"
+ style="
+ margin-top: 10px;
+ width: 200px;
+ height: 5px;
+ background-color: #409eff;
+ "
+ ></div>
+ </div>
</div>
- </div>
+
<!-- 鍏ュ簱瀵硅瘽妗� -->
<el-dialog
title="鍏ュ簱"
@@ -123,9 +178,9 @@
>
<el-form :model="formData" ref="form" label-width="80px">
<el-form-item label="杩涘簱鏂欐灦">
- <el-select v-model="formData.shelf" placeholder="璇烽�夋嫨杩涘簱鏂欐灦">
- <el-option label="A1" value="A1"></el-option>
- <el-option label="B2" value="B2"></el-option>
+ <el-select v-model="formData.number" placeholder="璇烽�夋嫨杩涘簱鏂欐灦">
+ <el-option label="1" value="1"></el-option>
+ <el-option label="2" value="2"></el-option>
<!-- 鏍规嵁瀹為檯鎯呭喌娣诲姞鏇村閫夐」 -->
</el-select>
</el-form-item>
@@ -137,348 +192,555 @@
</el-select>
</el-form-item>
<el-form-item label="瀹藉害">
- <el-input v-model.number="formData.width" placeholder="璇疯緭鍏ュ搴�"></el-input>
+ <el-input
+ v-model.number="formData.rawWidth"
+ placeholder="璇疯緭鍏ュ搴�"
+ ></el-input>
</el-form-item>
<el-form-item label="楂樺害">
- <el-input v-model.number="formData.height" placeholder="璇疯緭鍏ラ珮搴�"></el-input>
+ <el-input
+ v-model.number="formData.rawHeight"
+ placeholder="璇疯緭鍏ラ珮搴�"
+ ></el-input>
</el-form-item>
<el-form-item label="鍘氬害">
- <el-input v-model.number="formData.thickness" placeholder="璇疯緭鍏ュ帤搴�"></el-input>
+ <el-input
+ v-model.number="formData.rawThickness"
+ placeholder="璇疯緭鍏ュ帤搴�"
+ ></el-input>
</el-form-item>
<el-form-item label="鏁伴噺">
- <el-input v-model.number="formData.quantity" placeholder="璇疯緭鍏ユ暟閲�"></el-input>
+ <el-input
+ v-model.number="formData.pieces"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ ></el-input>
</el-form-item>
</el-form>
+
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="handleConfirmInbound">纭� 瀹�</el-button>
+ <el-button type="primary" @click="handleConfirmInbound"
+ >纭� 瀹�</el-button
+ >
</div>
</el-dialog>
- <el-dialog title="娣诲姞鍘熺墖" v-model="dialogVisible3" width="50%">
- <el-form :model="formData3" ref="form" label-width="80px">
- <el-form-item label="棰滆壊鑶滅郴">
- <el-input v-model="formData.selectedColor" readonly style="width: 250px; height: 35px; font-size: 20px"></el-input>
- <el-dropdown @command="handleCommand">
- <span class="el-dropdown-link">
- 閫夋嫨<i class="el-icon-arrow-down el-icon--right"></i>
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item v-for="color in colors" :key="color['0_glass_id']" :command="color['0_glass_id']">
- {{ color['0_glass_id'] }}
- </el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </el-form-item>
- <el-form-item label="闀垮害">
- <el-input v-model="formData.width" required style="width: 250px; font-size: 20px" @focus="clearInput('wid')"></el-input>
- </el-form-item>
- <el-form-item label="楂樺害">
- <el-input v-model="formData.height" required style="width: 250px; font-size: 20px" @focus="clearInput('heig')"></el-input>
- </el-form-item>
- <el-form-item label="鍘氬害">
- <el-input v-model="formData.thickness" required style="width: 250px; font-size: 20px" @focus="clearInput('thinkness')"></el-input>
- </el-form-item>
- <el-form-item label="鏁伴噺">
- <el-input-number v-model="formData.quantity" required :min="0" :max="9000" style="width: 250px; font-size: 20px" @focus="clearInput('num')"></el-input-number>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="dialogVisible3 = false">鍏抽棴</el-button>
- <el-button type="primary" @click="submitForm">鎻愪氦</el-button>
- </span>
- </el-dialog>
- <el-dialog title="缂栬緫" v-model="editdialogVisible" width="30%" @close="edithandleDialogClose">
- <el-form :model="editForm" ref="editFormRef" label-width="80px">
- <el-form-item label="鏁伴噺">
- <el-input v-model="editForm.quantity"></el-input>
+
+ <el-dialog title="娣诲姞鍘熺墖" v-model="dialogVisible3" width="50%">
+ <el-form :model="formData3" ref="form" label-width="80px">
+ <el-form-item label="棰滆壊鑶滅郴">
+ <el-input
+ v-model="formData.selectedColor"
+ readonly
+ style="width: 250px; height: 35px; font-size: 20px"
+ ></el-input>
+ <el-dropdown @command="handleCommand">
+ <span class="el-dropdown-link">
+ 閫夋嫨<i class="el-icon-arrow-down el-icon--right"></i>
+ </span>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item
+ v-for="color in colors"
+ :key="color['0_glass_id']"
+ :command="color['0_glass_id']"
+ >
+ {{ color["0_glass_id"] }}
+ </el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
</el-form-item>
- <el-form-item label="鎵规鍙�">
- <el-input v-model="editForm.batchnumber"></el-input>
- </el-form-item>
+
<el-form-item label="闀垮害">
- <el-input v-model="editForm.length"></el-input>
+ <el-input
+ v-model="formData.width"
+ required
+ style="width: 250px; font-size: 20px"
+ @focus="clearInput('wid')"
+ ></el-input>
</el-form-item>
+
<el-form-item label="楂樺害">
- <el-input v-model="editForm.height"></el-input>
+ <el-input
+ v-model="formData.height"
+ required
+ style="width: 250px; font-size: 20px"
+ @focus="clearInput('heig')"
+ ></el-input>
</el-form-item>
+
<el-form-item label="鍘氬害">
- <el-input v-model="editForm.thickness"></el-input>
+ <el-input
+ v-model="formData.thickness"
+ required
+ style="width: 250px; font-size: 20px"
+ @focus="clearInput('thinkness')"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="鏁伴噺">
+ <el-input-number
+ v-model="formData.quantity"
+ required
+ :min="0"
+ :max="9000"
+ style="width: 250px; font-size: 20px"
+ @focus="clearInput('num')"
+ ></el-input-number>
</el-form-item>
</el-form>
- <div class="dialog-footer">
+
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible3 = false">鍏抽棴</el-button>
+ <el-button type="primary" @click="submitForm">鎻愪氦</el-button>
+ </span>
+ </el-dialog>
+
+ <el-dialog
+ title="缂栬緫"
+ v-model="editdialogVisible"
+ width="30%"
+ @close="edithandleDialogClose"
+ >
+ <el-form :model="editForm" ref="editFormRef" label-width="80px">
+ <el-form-item label="鏁伴噺">
+ <el-input v-model="editForm.pieces"></el-input>
+ </el-form-item>
+ <el-form-item label="鎵规鍙�">
+ <el-input v-model="editForm.batchId"></el-input>
+ </el-form-item>
+ <el-form-item label="闀垮害">
+ <el-input v-model="editForm.rawWidth"></el-input>
+ </el-form-item>
+ <el-form-item label="楂樺害">
+ <el-input v-model="editForm.rawHeight"></el-input>
+ </el-form-item>
+ <el-form-item label="鍘氬害">
+ <el-input v-model="editForm.rawThickness"></el-input>
+ </el-form-item>
+ </el-form>
+
+ <div class="dialog-footer">
<el-button @click="editdialogVisible = false">鍙栨秷</el-button>
<el-button type="primary" @click="editsaveEdit">淇濆瓨</el-button>
</div>
</el-dialog>
</div>
</template>
+
+
+
+
<script setup>
-import { ref, onMounted, onBeforeUnmount } from 'vue'; // 瀵煎叆 Vue 3 鐨勬ā鍧�
-import * as echarts from 'echarts';
-import { ElMessage, ElMessageBox } from 'element-plus'
-import {tableData} from '@/stores/tableData.js';
- const loading = ref(false);
- const Hidden = ref(false)
- const totalItems = ref(0);
- totalItems.value = 10;
- const pageSize = 10;
- let currentPage = ref(1);
- const handleCurrentChange = (val) => {
- currentPage.value = val;
- };
- const getTagType2 =(status) => {
- switch (status) {
- case 'completed':
- return 'success';
- case 'in-progress':
- return 'info';
- case 'warning':
- return 'warning';
- case 'danger':
- return 'danger';
- default:
- return '';
- }
- }
- const getTagType =(status) => {
- return status === 1 ? 'success' : 'danger';
- // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
- }
- const toggleStatus = (row) => {
- // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
- row.shelf_status = 1 - row.shelf_status; // Toggle between 0 and 1
- // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
- };
- const tasktableData=ref([
- {
- Glassid: 'G001',
- taskDescription: '浠庡悐瑁呬綅銆�99銆戝埌浠撲綅銆�56銆�',
- taskStatus: 'in-progress',
- glassThickness: '5mm',
- glassFilm: '鑶滅郴A',
- creationTime: '2024-06-19 10:00:00'
- },
- {
- Glassid: 'G002',
- taskDescription: '浠庡悐瑁呬綅銆�99銆戝埌浠撲綅銆�56銆�',
- taskStatus: 'completed',
- glassThickness: '10mm',
- glassFilm: '鑶滅郴B',
- creationTime: '2024-06-19 11:00:00'
- }
- ]);
- const dialogVisible = ref(false);
- const formData = ref({
- shelf: '',
- color: '',
- width: '',
- height: '',
- thickness: '',
- quantity: ''
- });
- const formData2 = ref({
- dzw: '',
- });
- const handleDelete = (row) => {
- // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
- ElMessageBox.confirm('纭畾瑕佹墽琛屽垹闄ゆ搷浣滃悧锛�', '纭鍒犻櫎', {
- confirmButtonText: '纭',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
- console.log('鎵ц鍒犻櫎鎿嶄綔', row);
- }).catch(() => {
- // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
- console.log('鍙栨秷鍒犻櫎鎿嶄綔');
+import { ref, onMounted, onBeforeUnmount,onUnmounted } from "vue"; // 瀵煎叆 Vue 3 鐨勬ā鍧�
+//import * as echarts from 'echarts';
+import { ElMessage, ElMessageBox } from "element-plus";
+// import {tableData} from '@/stores/tableData.js';
+import { WebSocketHost, host } from "@/utils/constants";
+import { initializeWebSocket, closeWebSocket } from "@/utils/WebSocketService";
+
+import {
+ updateRawUsage,
+ deleteRawUsage,
+ inStorage,
+ outStorage,
+ taskUpdate,
+} from "@/utils/api";
+
+const loading = ref(false);
+const Hidden = ref(false);
+const tableData = ref([]);
+const totalItems = ref(0);
+totalItems.value = 10;
+const pageSize = 10;
+let currentPage = ref(1);
+const handleCurrentChange = (val) => {
+ currentPage.value = val;
+};
+
+const formatTaskType = (row, column) => {
+ if (row.taskType === "浠庝粨浣嶅埌鍚婅浣�") {
+ return `浠庝粨浣�${row.shelfRack}鍒板悐瑁呬綅${row.loadRack}`;
+ } else if (row.taskType === "浠庝粨浣嶅埌涓婄墖浣�") {
+ return `浠庝粨浣�${row.shelfRack}鍒颁笂鐗囦綅${row.loadRack}`;
+ } else if (row.taskType === "浠庝笂鐗囦綅鍒颁粨浣�") {
+ return `浠庝笂鐗囦綅${row.loadRack}鍒颁粨浣�${row.shelfRack}`;
+ } else if (row.taskType === "浠庡悐瑁呬綅鍒颁粨浣�") {
+ return `浠庡悐瑁呬綅${row.loadRack}鍒颁粨浣�${row.shelfRack}`;
+ }
+};
+
+const getTagType2 = (status) => {
+ switch (status) {
+ case "completed":
+ return "success";
+ case "in-progress":
+ return "info";
+ case "warning":
+ return "warning";
+ case "danger":
+ return "danger";
+ default:
+ return "";
+ }
+};
+
+const getTagType = (status) => {
+ return status === 1 ? "success" : "danger";
+ // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
+};
+
+const toggleStatus = (row) => {
+ // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
+ row.enableState = 1 - row.enableState; // Toggle between 0 and 1
+ // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
+};
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/storageTask`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+ // 鏇存柊 tableData 鐨勬暟鎹�
+
+ tableData.value = data.rack[0]; // 鍋囪 tableData 鏄搷搴斿紡瀵硅薄鎴栧彉閲�
+
+ tableData.value.forEach((item) => {
+ // 鑾峰彇 createTime 鐨勬椂闂存埑
+ const createTimeTimestamp = item.createTime;
+
+ // 鍒涘缓鏃ユ湡瀵硅薄
+ const date = new Date(createTimeTimestamp);
+
+ // 鏍煎紡鍖栨棩鏈熸椂闂翠负鏈湴鏍煎紡
+ const formattedDateTime = date.toLocaleString();
+
+ // 鏇挎崲鍘熸潵鐨� createTime 瀛楁涓烘牸寮忓寲鍚庣殑鏃ユ湡鏃堕棿瀛楃涓�
+ item.createTime = formattedDateTime;
+ });
+
+ tasktableData.value = data.tasks[0]; // 鍋囪 tasktableData 鏄搷搴斿紡瀵硅薄鎴栧彉閲�
+
+ tasktableData.value.forEach((item) => {
+ // 鑾峰彇 createTime 鐨勬椂闂存埑
+ const createTimeTimestamp = item.startTime;
+
+ // 鍒涘缓鏃ユ湡瀵硅薄
+ const date = new Date(createTimeTimestamp);
+
+ // 鏍煎紡鍖栨棩鏈熸椂闂翠负鏈湴鏍煎紡
+ const formattedDateTime = date.toLocaleString();
+
+ // 鏇挎崲鍘熸潵鐨� createTime 瀛楁涓烘牸寮忓寲鍚庣殑鏃ユ湡鏃堕棿瀛楃涓�
+ item.startTime = formattedDateTime;
});
};
- const handleCheckout = (row) => {
+onMounted(() => {
+ socket = initializeWebSocket(socketUrl, handleMessage);
+});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
+onBeforeUnmount(() => {
+ console.log("鍏抽棴浜�");
+ closeWebSocket();
+});
+
+const tasktableData = ref([]);
+
+const dialogVisible = ref(false);
+const formData = ref({
+ number: "",
+ color: "",
+ rawWidth: "",
+ rawHeight: "",
+ rawThickness: "",
+ pieces: "",
+ loadRack: 1,
+});
+
+const formData2 = ref({
+ dzw: "",
+});
+
+const handleDelete = (row) => {
// 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
- ElMessageBox.confirm('纭畾瑕佹墽琛屽嚭搴撴搷浣滃悧锛�', '纭鍑哄簱', {
- confirmButtonText: '纭',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
- console.log('鎵ц鍑哄簱鎿嶄綔', row);
- }).catch(() => {
- // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
- console.log('鍙栨秷鍑哄簱鎿嶄綔');
- });
-};
- const handleInbound = () => {
- // 鎵撳紑鍏ュ簱瀵硅瘽妗�
- dialogVisible.value = true;
- };
- const storage = () => {
- // 鎵撳紑鍏ュ簱瀵硅瘽妗�
- Hidden.value = true;
- };
- const handleCloseDialog = () => {
- // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆琛ㄥ崟鏁版嵁
- formData.value = {
- shelf: '',
- color: '',
- width: '',
- height: '',
- thickness: '',
- quantity: ''
+ ElMessageBox.confirm("纭畾瑕佹墽琛屽垹闄ゆ搷浣滃悧锛�", "纭鍒犻櫎", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
+
+ const intNumber = {
+ id: parseInt(row.number),
};
- dialogVisible.value = false;
- };
- const handleConfirmInbound = () => {
- // 澶勭悊纭鍏ュ簱閫昏緫锛屽彲浠ュ湪杩欓噷鎻愪氦琛ㄥ崟鎴栬�呮墽琛屽叾浠栨搷浣�
- console.log('Confirm Inbound:', formData.value);
- // 鍏抽棴瀵硅瘽妗�
- dialogVisible.value = false;
- };
- const dialogVisible3 = ref(false);
- const colors = ref([
- { '0_glass_id': 'Red' },
- { '0_glass_id': 'Green' },
- { '0_glass_id': 'Blue' }
- // Add more colors as needed
- ]);
- const formData3 = ref({
- selectedColor: '',
- wid: '',
- heig: '',
- thinkness: '',
- num: ''
+ deleteRawUsage(intNumber);
+
+ console.log("鎵ц鍒犻櫎鎿嶄綔");
+ })
+ .catch(() => {
+ // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+ console.log("鍙栨秷鍒犻櫎鎿嶄綔");
});
- const addglass = () => {
- // 鎵撳紑鍏ュ簱瀵硅瘽妗�
- dialogVisible3.value = true;
- };
- const handleCommand = (command) => {
- formData.value.selectedColor = command;
- };
- const clearInput = (field) => {
- formData.value[field] = '';
- };
- const submitForm = () => {
- console.log('鎻愪氦鏁版嵁:', formData.value);
- dialogVisible3.value = false;
- // Add your submit logic here
- };
- const editdialogVisible = ref(false);
- const editForm = ref({
- quantity: '',
- batchnumber: '',
- length:'',
- height:'',
- thickness:''
- });
- const editFormRef = ref(null);
- let currentRow = ref(null);
- // 澶勭悊琛岀偣鍑讳簨浠�
- const edithandleRowClick = (row) => {
- currentRow.value = row;
- console.log(row)
- editForm.value.quantity = row.quantity.toString();
- editForm.value.batchnumber = row.batchnumber;
- editForm.value.length = row.length;
- editForm.value.height = row.height;
- editForm.value.thickness = row.thickness;
- editdialogVisible.value = true;
- console.log(editForm.value)
- };
- // 娣诲姞淇濆瓨缂栬緫鍐呭
- const editsaveEdit = () => {
- if (!currentRow.value) return;
- // 鏇存柊褰撳墠琛屾暟鎹�
- currentRow.value.quantity = parseInt(editForm.value.quantity);
- currentRow.value.batchnumber = editForm.value.batchnumber;
- // 鍏抽棴瀵硅瘽妗�
- editdialogVisible.value = false;
- };
- // 瀵硅瘽妗嗗叧闂椂閲嶇疆缂栬緫琛ㄥ崟鍜屽綋鍓嶈鏁版嵁
- const edithandleDialogClose = () => {
- editForm.value.quantity = '';
- editForm.value.batchnumber = '';
- editForm.value.width = '';
- editForm.value.height = '';
- editForm.value.thickness = '';
- currentRow.value = null;
- };
- const handleRestart = (row) => {
- // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
- ElMessageBox.confirm('纭畾瑕佹墽琛岄噸鏂板紑濮嬫搷浣滃悧锛�', '纭閲嶆柊寮�濮�', {
- confirmButtonText: '纭',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- // 鐐瑰嚮纭鎸夐挳鐨勫洖璋�
- console.log('鎵ц閲嶆柊寮�濮嬫搷浣�', row);
- }).catch(() => {
- // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
- console.log('鍙栨秷閲嶆柊寮�濮嬫搷浣�');
- });
};
+
+const handleCheckout = (row) => {
+ // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
+ ElMessageBox.confirm("纭畾瑕佹墽琛屽嚭搴撴搷浣滃悧锛�", "纭鍑哄簱", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
+ const raw={
+ number:parseInt(row.number),
+ loadRack:2
+ }
+ outStorage(raw)
+ console.log("鎵ц鍑哄簱鎿嶄綔", row);
+ })
+ .catch(() => {
+ // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+ console.log("鍙栨秷鍑哄簱鎿嶄綔");
+ });
+};
+
+const handleInbound = () => {
+ // 鎵撳紑鍏ュ簱瀵硅瘽妗�
+ dialogVisible.value = true;
+};
+
+const storage = () => {
+ // 鎵撳紑鍏ュ簱瀵硅瘽妗�
+ Hidden.value = true;
+};
+
+const handleCloseDialog = () => {
+ // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆琛ㄥ崟鏁版嵁
+ formData.value = {
+ number: "",
+ color: "",
+ rawWidth: "",
+ rawHeight: "",
+ rawThickness: "",
+ pieces: "",
+ };
+ dialogVisible.value = false;
+};
+
+const handleConfirmInbound = () => {
+ inStorage(formData.value);
+ // 澶勭悊纭鍏ュ簱閫昏緫锛屽彲浠ュ湪杩欓噷鎻愪氦琛ㄥ崟鎴栬�呮墽琛屽叾浠栨搷浣�
+ console.log("Confirm Inbound:", formData.value);
+ // 鍏抽棴瀵硅瘽妗�
+ dialogVisible.value = false;
+};
+
+const dialogVisible3 = ref(false);
+const colors = ref([
+ { "0_glass_id": "Red" },
+ { "0_glass_id": "Green" },
+ { "0_glass_id": "Blue" },
+ // Add more colors as needed
+]);
+
+const formData3 = ref({
+ selectedColor: "",
+ wid: "",
+ heig: "",
+ thinkness: "",
+ num: "",
+});
+
+const addglass = () => {
+ // 鎵撳紑鍏ュ簱瀵硅瘽妗�
+ dialogVisible3.value = true;
+};
+const handleCommand = (command) => {
+ formData.value.selectedColor = command;
+};
+
+const clearInput = (field) => {
+ formData.value[field] = "";
+};
+
+const submitForm = () => {
+ console.log("鎻愪氦鏁版嵁:", formData.value);
+ dialogVisible3.value = false;
+ // Add your submit logic here
+};
+
+const editdialogVisible = ref(false);
+const editForm = ref({
+ id: "",
+ pieces: "",
+ batchId: "",
+ rawWidth: "",
+ rawHeight: "",
+ rawThickness: "",
+});
+const editFormRef = ref(null);
+let currentRow = ref(null);
+
+// 澶勭悊琛岀偣鍑讳簨浠�
+const edithandleRowClick = (row) => {
+ currentRow.value = row;
+ console.log(row);
+ editForm.value.pieces = row.pieces.toString();
+ editForm.value.batchId = row.batchId;
+ editForm.value.rawWidth = row.rawWidth;
+ editForm.value.rawHeight = row.rawHeight;
+ editForm.value.rawThickness = row.rawThickness;
+ editForm.value.id = row.number;
+ editdialogVisible.value = true;
+ console.log(editForm.value);
+};
+
+// 娣诲姞淇濆瓨缂栬緫鍐呭
+const editsaveEdit = () => {
+ if (!currentRow.value) return;
+
+ // 鏇存柊褰撳墠琛屾暟鎹�
+ currentRow.value.pieces = editForm.value.pieces;
+ currentRow.value.batchId = editForm.value.batchId;
+ currentRow.value.rawWidth = editForm.value.rawWidth;
+ currentRow.value.rawHeight = editForm.value.rawHeight;
+ currentRow.value.rawThickness = editForm.value.rawThickness;
+ // 璋冪敤鏇存柊鍑芥暟锛屽苟澶勭悊鍏惰繑鍥炵殑 Promise
+ updateRawUsage(editForm.value);
+
+ // 鍏抽棴瀵硅瘽妗�
+ editdialogVisible.value = false;
+};
+
+// 瀵硅瘽妗嗗叧闂椂閲嶇疆缂栬緫琛ㄥ崟鍜屽綋鍓嶈鏁版嵁
+const edithandleDialogClose = () => {
+ editForm.value.pieces = "";
+ editForm.value.batchId = "";
+ editForm.value.rawWidth = "";
+ editForm.value.rawHeight = "";
+ editForm.value.rawThickness = "";
+
+ currentRow.value = null;
+};
+
+const handleRestart = (row) => {
+ // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
+ ElMessageBox.confirm("纭畾瑕佹墽琛岄噸鏂板紑濮嬫搷浣滃悧锛�", "纭閲嶆柊寮�濮�", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ const taskdata={
+ id:row.id,
+ Type:"閲嶆柊寮�濮�"
+ }
+ taskUpdate(taskdata);
+
+
+ console.log("鎵ц閲嶆柊寮�濮嬫搷浣�", row);
+ })
+ .catch(() => {
+ // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+ console.log("鍙栨秷閲嶆柊寮�濮嬫搷浣�");
+ });
+};
+
const handleDeletetask = (row) => {
// 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
- ElMessageBox.confirm('纭畾瑕佹墽琛屽垹闄や换鍔℃搷浣滃悧锛�', '纭鍒犻櫎浠诲姟', {
- confirmButtonText: '纭',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- // 鐐瑰嚮纭鎸夐挳鐨勫洖璋�
- console.log('鎵ц鍒犻櫎浠诲姟鎿嶄綔', row);
- }).catch(() => {
- // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
- console.log('鍙栨秷鍒犻櫎浠诲姟鎿嶄綔');
- });
+ ElMessageBox.confirm("纭畾瑕佹墽琛屽垹闄や换鍔℃搷浣滃悧锛�", "纭鍒犻櫎浠诲姟", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ // 鐐瑰嚮纭鎸夐挳鐨勫洖璋�
+ const taskdata={
+ id:row.id,
+ Type:"鍒犻櫎"
+ }
+ taskUpdate(taskdata);
+ console.log("鎵ц鍒犻櫎浠诲姟鎿嶄綔", row);
+ })
+ .catch(() => {
+ // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+ console.log("鍙栨秷鍒犻櫎浠诲姟鎿嶄綔");
+ });
};
+
const handleComplete = (row) => {
// 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
- ElMessageBox.confirm('纭畾瑕佹墽琛屼换鍔″畬鎴愭搷浣滃悧锛�', '纭浠诲姟瀹屾垚', {
- confirmButtonText: '纭',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- // 鐐瑰嚮纭鎸夐挳鐨勫洖璋�
- console.log('鎵ц浠诲姟瀹屾垚鎿嶄綔', row);
- }).catch(() => {
- // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
- console.log('鍙栨秷浠诲姟瀹屾垚鎿嶄綔');
- });
+ ElMessageBox.confirm("纭畾瑕佹墽琛屼换鍔″畬鎴愭搷浣滃悧锛�", "纭浠诲姟瀹屾垚", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+
+ const taskdata={
+ id:row.id,
+ Type:"瀹屾垚"
+ }
+ taskUpdate(taskdata);
+ // 鐐瑰嚮纭鎸夐挳鐨勫洖璋�
+ console.log("鎵ц浠诲姟瀹屾垚鎿嶄綔", row);
+ })
+ .catch(() => {
+ // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
+ console.log("鍙栨秷浠诲姟瀹屾垚鎿嶄綔");
+ });
};
</script>
+
<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{
+#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;
}
-.img-ypcc{
- margin-left: -40px;
- background-image:url('../../assets/ypcc.png');
+
+.img-ypcc {
+ margin-left: 80px;
+ background-image: url("../../assets/ypcc.png");
background-repeat: no-repeat;
- background-attachment: local;
- min-height: 600px;
- width: 1400px;
- max-width: 100%;
- background-size: 1400px 600px;
- overflow: hidden;
- position:relative;
- margin-top: -30px
+ background-attachment: local;
+ min-height: 600px;
+ width: 1400px;
+ max-width: 100%;
+ background-size: 1400px 600px;
+ overflow: hidden;
+ position: relative;
+ margin-top: 0px;
}
-.img-car1{
- background-image:url('../../assets/ypccche.png');
+
+.img-car1 {
+ background-image: url("../../assets/ypccche.png");
position: absolute;
background-repeat: no-repeat;
- background-attachment: local;
- min-height: 400px;
- width: 200px;
- max-width: 100%;
- background-size: 200px 170px;
- overflow: hidden;
- position:relative
+ background-attachment: local;
+ min-height: 400px;
+ width: 200px;
+ max-width: 100%;
+ background-size: 200px 170px;
+ overflow: hidden;
+ position: relative;
}
+
.custom-dialog {
max-height: 90vh; /* 鏈�澶ч珮搴︿负瑙嗗彛楂樺害鐨�90% */
overflow-y: auto; /* 瀵硅瘽妗嗗唴閮ㄥ嚭鐜板瀭鐩存粴鍔ㄦ潯 */
}
-</style>
\ No newline at end of file
+</style>
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 3274205..5111448 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -41,7 +41,7 @@
<script setup lang="ts">
import { Delete, Upload } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
-import { ref, onMounted, onBeforeUnmount } from 'vue';
+import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue';
import request from "@/utils/request"
import { WebSocketHost ,host} from '@/utils/constants'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
@@ -181,12 +181,13 @@
}
});
}
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
const handleMessage = (data) => {
// adjustedRects.value = data.currentCutTerritory[0]
adjustedRects.value = data.currentCutTerritory[0].map(rect => ({
- ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
- x_axis: (rect.x_axis*100) * 0.003, // 灏唜鍊奸櫎浠�3
+ ...rect,
+ x_axis: (rect.x_axis*100) * 0.003,
y_axis: (rect.y_axis*100) * 0.003,
width: (rect.width*100) * 0.002 ,
widtha: rect.width ,
@@ -194,18 +195,15 @@
height:( rect.height*100) * 0.002 ,
glass_state: rect.glass_state
}));
- // console.log("鏇存柊鍚庢暟鎹�", tableData);
-
};
-
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
-
onMounted(() => {
- // fetchFlowCardId();
- // fetchTableData(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
-
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 3ab4e62..f0b25de 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -3,7 +3,7 @@
import {reactive} from "vue";
import {useRouter} from "vue-router"
import request from "@/utils/request"
-import { ref, onMounted, onBeforeUnmount } from 'vue';
+import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue';
import { WebSocketHost ,host} from '@/utils/constants'
import { ElMessage, ElMessageBox } from 'element-plus'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
@@ -22,6 +22,7 @@
const adjustedRectsb = ref([]);
const currentGlassId = ref(null);
const currenttemperingFeedSequence = ref(null);
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
const handleMessage = (data) => {
// 杩涚倝涓�
@@ -205,8 +206,13 @@
}
};
onMounted(() => {
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
function updateRectColors() {
adjustedRectsa.value.forEach(rect => {
if (rect.glassId === glassId) {
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 8bd571d..5164c6a 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -5,7 +5,7 @@
import { ElMessage, ElMessageBox } from 'element-plus'
import request from "@/utils/request"
-import { ref, onMounted, onBeforeUnmount } from 'vue';
+import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue';
import { WebSocketHost ,host} from '@/utils/constants'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
const adjustedRects = ref([]);
@@ -29,7 +29,7 @@
}
}
}
-
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
@@ -117,11 +117,13 @@
}
}
onMounted(() => {
- // fetchFlowCardId();
- // fetchTableData(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
-
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
index d1bfcfe..67b04ab 100644
--- a/UI-Project/src/views/ReportWork/reportWork.vue
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -224,6 +224,7 @@
inputValuesb[rowId] = value;
};
fetchTableData();
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
const handleMessage = (data) => {
// adjustedRects.value = data.device[0].map(rect => ({
@@ -233,7 +234,7 @@
// thisProcess: rect.thisProcess,
// }));
};
-let socket;
+// let socket;
onMounted(() => {
socket = new WebSocket(socketUrl);
socket.onmessage = (event) => {
@@ -243,19 +244,18 @@
};
// };
});
-
-
-
-
onUnmounted(() => {
socket.close();
});
-
onMounted(() => {
- // fetchFlowCardId();
fetchTableData();
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 3c14673..5824545 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -17,6 +17,8 @@
const flakea = ref(false)
const flakeb = ref(false)
const flakec = ref(false)
+const dialoglea = ref(false)
+const tableDatax = ref([])
const user = ref('');
const projectNo = ref('');
const workstationId = ref('');
@@ -89,13 +91,50 @@
// ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
}
};
-onMounted(() => {
+const handlezhiban = () => {
+ dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+ fetchFlowCardId();
+};
+// 鍊肩彮淇℃伅
+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;
+ console.log(tableDatax.value);
+ console
+ } else {
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+const handleConfirmb = async () => {
+ const response = await request.post("/loadGlass/work_assignment/updateWorkAssignment", tableDatax.value)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ dialoglea.value = false;
+ } else {
+ ElMessage.error(response.message);
+ }
+};
+onMounted(() => {
list('');
fetchOptions('');
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
-onMounted(() => {
-});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
const list = async () => {
try {
const response = await request.get('/loadGlass/LoadGlass/list');
@@ -152,6 +191,7 @@
const titleSelectJsona = ref({
processTypea: [],
})
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
@@ -654,6 +694,7 @@
<el-button style="margin-top: 5px;margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true">{{ $t('basicData.selectproject') }}</el-button>
<el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @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-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">
@@ -715,6 +756,32 @@
</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="30vh" width="25%" :title="$t('basicData.whetherpause')">
<template #footer>
<div id="dialog-footer">
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index f52ad85..4ed89ea 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -7,7 +7,7 @@
const router = useRouter()
import request from "@/utils/request"
import { WebSocketHost ,host} from '@/utils/constants'
-import { ref, onMounted , onBeforeUnmount, reactive, computed } from "vue";
+import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
import { ElMessage, ElMessageBox } from 'element-plus'
import { tr } from "element-plus/es/locale";
@@ -23,7 +23,7 @@
const tableDatad = ref([])
const tableDataf = ref([])
const tableDatae = ref([])
-const tableDataxx = ref([])
+const tableDatax = ref([])
const carPosition = ref([])
const ganghua = ref('')
const adjustedRects = ref([]);
@@ -39,6 +39,8 @@
const adjustedRectsg = ref([]);
const adjustedRectsh = ref([]);
const currentRow = reactive({}); // 褰撳墠琛岀殑鏁版嵁
+const inputValuesa = reactive({});
+
const add = ref(false)
const flowCardId = ref('');
const gap = ref('');
@@ -180,10 +182,8 @@
});
setInterval(() => {
localStorage.clear(); // 娓呴櫎鎵�鏈塴ocalStorage鏁版嵁
- console.log(11111);
}, 60000);
// function cleanUp() {
-// console.log('鎵ц娓呯悊鎿嶄綔');
// }
// // 鍋囪鎴戜滑姣�2鍒嗛挓鎵ц涓�娆℃竻鐞�
// setInterval(cleanUp, 1 * 60 * 1000);
@@ -232,10 +232,7 @@
// 鏄惁绂佺敤
const toggleEnableState = async (row) => {
const newState = row.enableState === 1 ? 0 : 1;
- console.log(row.slot);
- console.log(row.enableState);
var url="/cacheVerticalGlass/bigStorageCage/updateStorageCageDisabled?slot="+row.slot + "&enableState=" + newState;
- console.log(url);
const response = await request.get(url)
if (response.code === 200) {
ElMessage.success(response.message);
@@ -513,28 +510,36 @@
}
};
const handlezhiban = () => {
- fetchFlowCardId();
dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+ fetchFlowCardId();
};
const fetchFlowCardId = async () => {
- try {
- // var url="/cacheVerticalGlass/work_assignment/selectWorkAssignment?line=" + 2001 + "&workingProcedure='鍐峰姞宸�'";
- // const response = await request.post(url)
+ try {
const response = await request.post('/cacheVerticalGlass/work_assignment/selectWorkAssignment',{
line: 2001,
workingProcedure : '鍐峰姞宸�'
- });
- if (response.code === 200) {
- ElMessage.error(response.message);
- tableDataxx.value = response.data;
- console.log(tableDataxx.value);
-
-}
- else {
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ tableDatax.value = response.data;
+ console.log(tableDatax.value);
+ console
+ } else {
ElMessage.error(response.message);
}
- } catch (error) {
+}
+catch (error) {
+ // 澶勭悊閿欒
console.error(error);
+ }
+}
+const handleConfirm = async () => {
+ const response = await request.post("/cacheVerticalGlass/work_assignment/updateWorkAssignment", tableDatax.value)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ dialoglea.value = false;
+ } else {
+ ElMessage.error(response.message);
}
};
function handleRowClick(row) {
@@ -561,11 +566,11 @@
console.error(error);
}
}
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
// 鏇存柊 tableData 鐨勬暟鎹�
- console.log(data.temperingSwitch[0]);
if(data.bigStorageCageDetailsOutTask!=null){
tableDatac.value = data.bigStorageCageDetailsOutTask[0]
adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);
@@ -612,7 +617,6 @@
}else{
ganghua.value = ''
}
-console.log(data.temperingSwitch[0]);
if(data.bigStorageCageInfos!=null){
window.localStorage.setItem('length', data.bigStorageCageInfos[0][1].length)
let length = window.localStorage.getItem('length')
@@ -670,9 +674,14 @@
// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
// fetchFlowCardId();
- initializeWebSocket(socketUrl, handleMessage);
-
+ // initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
function getStatusType(enableState: number) {
switch (enableState) {
case 100:
@@ -724,7 +733,7 @@
}
}
onBeforeUnmount(() => {
- console.log("鍏抽棴浜�")
+ // console.log("鍏抽棴浜�")
closeWebSocket();
});
</script>
@@ -1371,20 +1380,28 @@
</el-table-column>
</el-table>
</el-dialog>
-<el-dialog v-model="dialoglea" top="5vh" width="85%" :title="$t('searchOrder.dutyinformation')">
- <el-table ref="table" style="margin-top: 20px;height: 400px;"
- :data="tableDataxx" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')" min-width="150"/>
- <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" min-width="120" />
- <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')" min-width="150" />
- <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')" min-width="150" />
+<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('basicData.cancel') }}</el-button>
+ <el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
</div>
</template>
</el-dialog>
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index 8b0da31..5135e96 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -6,7 +6,7 @@
const adda = ref(false)
import { WebSocketHost ,host} from '@/utils/constants'
import request from "@/utils/request"
-import { ref, onMounted , onBeforeUnmount} from "vue";
+import { ref, onMounted , onBeforeUnmount,onUnmounted} from "vue";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
@@ -100,26 +100,26 @@
console.error('鍙戠敓閿欒:', error);
}
};
-
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
// 鏇存柊 tableData 鐨勬暟鎹�
tableData.value = data.EdgTasks1[0]
};
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
- // fetchFlowCardId();
- // fetchTableData(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
-
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
});
</script>
-
<template>
<div>
<el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
@@ -147,7 +147,6 @@
</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{
diff --git a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
index 8775761..57e6567 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
@@ -6,7 +6,7 @@
const adda = ref(false)
import { WebSocketHost ,host} from '@/utils/constants'
import request from "@/utils/request"
-import { ref, onMounted , onBeforeUnmount} from "vue";
+import { ref, onMounted , onBeforeUnmount,onUnmounted} from "vue";
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
@@ -100,21 +100,21 @@
console.error('鍙戠敓閿欒:', error);
}
};
-
-
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
// 鏇存柊 tableData 鐨勬暟鎹�
tableData.value = data.EdgTasks2[0]
};
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
onMounted(() => {
- // fetchFlowCardId();
- // fetchTableData(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
-
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 36af612..6acb725 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -32,7 +32,7 @@
</template>
<script setup>
-import { ref, watchEffect ,onMounted} from 'vue';
+import { ref, watchEffect ,onMounted,onUnmounted} from 'vue';
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
@@ -116,6 +116,7 @@
console.error(error);
}
};
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:8085/api/talk/unloadglass2`;
//const socketUrl = `ws://${WebSocketHost}:88/api/unLoadGlass/api/talk/unloadglass2`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
@@ -146,13 +147,15 @@
}
});
};
-
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
-
onMounted(() => {
fetchFlowCardId(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
const showCustomAlert = (downGlassInfoList) => {
let tableContent = '<table border="1" style="border-collapse: collapse; width: 100%;">';
tableContent += '<tr><th style="background-color: #f2f2f2;">鐜荤拑ID</th><th style="background-color: #f2f2f2;">鑶滅郴</th><th style="background-color: #f2f2f2;">鍘氬害</th><th style="background-color: #f2f2f2;">瀹藉害</th><th style="background-color: #f2f2f2;">楂樺害</th></tr>';
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index c42fbe5..d13a3f2 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -32,7 +32,7 @@
</template>
<script setup>
-import { ref, watchEffect ,onMounted} from 'vue';
+import { ref, watchEffect ,onMounted,onUnmounted} from 'vue';
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
@@ -115,6 +115,7 @@
}
};
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass3`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
@@ -143,13 +144,15 @@
}
});
};
-
-// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
-
onMounted(() => {
fetchFlowCardId(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
const showCustomAlert = (downGlassInfoList) => {
let tableContent = '<table border="1" style="border-collapse: collapse; width: 100%;">';
tableContent += '<tr><th style="background-color: #f2f2f2;">鐜荤拑ID</th><th style="background-color: #f2f2f2;">鑶滅郴</th><th style="background-color: #f2f2f2;">鍘氬害</th><th style="background-color: #f2f2f2;">瀹藉害</th><th style="background-color: #f2f2f2;">楂樺害</th></tr>';
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 581478d..c0fbde6 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,6 +1,6 @@
<script setup>
import {Search} from "@element-plus/icons-vue";
-import {reactive, onMounted, onBeforeUnmount} from "vue";
+import {reactive, onMounted, onBeforeUnmount,onUnmounted} from "vue";
import {useRouter} from "vue-router"
const router = useRouter()
import { useI18n } from 'vue-i18n'
@@ -139,6 +139,7 @@
ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
}
};
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
@@ -150,8 +151,13 @@
onMounted(() => {
fetchFlowCardId();
fetchTableData(); // 鑾峰彇鏁版嵁
- initializeWebSocket(socketUrl, handleMessage);
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/largescreen/largescreen.vue b/UI-Project/src/views/largescreen/largescreen.vue
index 7c3603a..fb2ab1a 100644
--- a/UI-Project/src/views/largescreen/largescreen.vue
+++ b/UI-Project/src/views/largescreen/largescreen.vue
@@ -147,6 +147,7 @@
return t('large.allstatus');
}
}
+let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
const handleMessage = (data) => {
tableData.value = data.awaitingRepairs[0]
@@ -159,7 +160,7 @@
// thisProcess: rect.thisProcess,
// }));
};
-let socket;
+// let socket;
// 璁剧疆鍥捐〃 DOM 寮曠敤
function setChartDom(index, el) {
if (!chartRefs.value[index]) {
@@ -232,13 +233,14 @@
onUnmounted(() => {
socket.close();
});
-
onMounted(() => {
-// fetchFlowCardId();
-// fetchTableData(); // 鑾峰彇鏁版嵁
-initializeWebSocket(socketUrl, handleMessage);
-
+ socket = initializeWebSocket(socketUrl, handleMessage);
});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/hangzhoumesParent/gateway/src/main/resources/application.yml b/hangzhoumesParent/gateway/src/main/resources/application.yml
index a369150..93b9826 100644
--- a/hangzhoumesParent/gateway/src/main/resources/application.yml
+++ b/hangzhoumesParent/gateway/src/main/resources/application.yml
@@ -6,7 +6,7 @@
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
gateway:
discovery:
locator:
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
index 7fff8e4..0287e4b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
@@ -78,7 +78,7 @@
.eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId)
.eq(EdgStorageCageDetails::getEngineerId, GlassInfo::getEngineerId))
.eq(GlassInfo::getGlassId,taskCache1.getGlassId())
- .eq(EdgStorageCageDetails::getState,Const.GLASS_STATE_IN)
+ .eq(EdgStorageCageDetails::getState,Const.GLASS_STATE_OUT)
);
if(glassInfos.size()==1){
GlassInfo glassInfo=glassInfos.get(0);
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
new file mode 100644
index 0000000..700a1c1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
@@ -0,0 +1,54 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.service.ShelfRackService;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
+import com.mes.storagetask.service.StorageTaskService;
+import com.mes.tools.WebSocketServer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Component
+public class push {
+
+ @Autowired
+ private StorageTaskService storageTaskService;
+ @Autowired
+ private ShelfRackService shelfRackService;
+
+
+ @Scheduled(fixedDelay = 2000)
+ public void sendDownWorkstations() {
+ log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
+ JSONObject jsonObject = new JSONObject();
+
+ List<RawUsageAndShelfRack> rack = shelfRackService.selectshelf_rack();
+ List<StorageTaskRequest> tasks = storageTaskService.Tasks();
+
+ jsonObject.append("rack",rack);
+ jsonObject.append("tasks",tasks);
+ log.info(jsonObject.toString());
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("storageTask");
+ if (sendwServer != null) {
+ for (WebSocketServer webserver : sendwServer) {
+ if (webserver != null&&webserver.session.isOpen()) {
+ log.info("宸插彂閫�");
+ webserver.sendMessage(String.valueOf(jsonObject));
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/entity/LoadPosition.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/entity/LoadPosition.java
index 494c66f..99f32ec 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/entity/LoadPosition.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/entity/LoadPosition.java
@@ -1,5 +1,7 @@
package com.mes.loadposition.entity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -27,8 +29,8 @@
/**
*
*/
- @ApiModelProperty(" ")
- private Long id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 鏋跺瓙缂栧彿
@@ -58,7 +60,7 @@
* 浠撳偍浠诲姟缂栧彿
*/
@ApiModelProperty("浠撳偍浠诲姟缂栧彿")
- private Long storageTaskId;
+ private Integer storageTaskId;
/**
* 涓婄墖浣嶇被鍨�
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/controller/RawUsageController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/controller/RawUsageController.java
index 9f95757..1518f75 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/controller/RawUsageController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/controller/RawUsageController.java
@@ -1,5 +1,6 @@
package com.mes.rawusage.controller;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
import com.mes.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -80,8 +81,8 @@
*/
@ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
@ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
- @PutMapping
- public Result update( @RequestBody RawUsage rawUsage) {
+ @PostMapping("/updaterawUsage")
+ public Result updaterawUsage(@RequestBody RawUsage rawUsage) {
boolean result = rawUsageService.updateById(rawUsage);
return Result.success(result);
}
@@ -89,14 +90,30 @@
/**
* 鍒犻櫎
*
- * @param id
+ * @param
* @return
*/
@ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
- @DeleteMapping("/{id}")
- public Result delete(@PathVariable("id") Long id) {
- int result = rawUsageService.getBaseMapper().deleteById(id);
- return Result.success(result);
+ @PostMapping("/id")
+ public Result delete(@RequestBody RawUsage rawUsage) {
+ rawUsageService.updateRawPackageAndStorageRack(rawUsage);
+ return Result.success();
}
+ @ApiOperation(value = "鍏ュ簱", notes = "鍏ュ簱")
+ @PostMapping("/inStorage")
+ public Result inStorage(@RequestBody RawUsageAndShelfRack rawUsage) {
+ rawUsageService.inStorage(rawUsage);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鍑哄簱", notes = "鍑哄簱")
+ @PostMapping("/outStorage")
+ public Result outStorage(@RequestBody RawUsageAndShelfRack rawUsage) {
+ rawUsageService.outStorage(rawUsage);
+ return Result.success();
+ }
+
+
+
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/entity/RawUsage.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/entity/RawUsage.java
index 4715716..de0b617 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/entity/RawUsage.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/entity/RawUsage.java
@@ -2,6 +2,9 @@
import java.io.Serializable;
import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -27,8 +30,8 @@
/**
*
*/
- @ApiModelProperty(" ")
- private Long id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 鐜荤拑绫诲瀷
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/RawUsageService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/RawUsageService.java
index dea687f..900e4a1 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/RawUsageService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/RawUsageService.java
@@ -2,6 +2,8 @@
import com.mes.rawusage.entity.RawUsage;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
import java.util.List;
/**
@@ -12,6 +14,23 @@
List<RawUsage> findList(RawUsage params);
+ /**
+ * @param raw
+ * 淇敼
+ */
+ void updateRawPackageAndStorageRack(RawUsage raw);
+ /**
+ * @param raw
+ * 鍏ュ簱
+ */
+ void inStorage(RawUsageAndShelfRack raw);
+
+
+ /**
+ * @param raw
+ * 鍑哄簱
+ */
+ void outStorage(RawUsageAndShelfRack raw);
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
index 108908d..69f120f 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
@@ -6,9 +6,20 @@
import com.mes.rawusage.mapper.RawUsageMapper;
import com.mes.rawusage.entity.RawUsage;
import com.mes.rawusage.service.RawUsageService;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.mapper.ShelfRackMapper;
+import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.mapper.StorageTaskMapper;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.lang.reflect.InvocationTargetException;
+import java.time.LocalDateTime;
import java.util.List;
+
+import static cn.hutool.core.date.DateTime.now;
/**
* @author system
@@ -19,6 +30,10 @@
@Autowired
private RawUsageMapper rawUsageMapper;
+ @Autowired
+ private ShelfRackMapper shelfRackMapper;
+ @Autowired
+ private StorageTaskMapper storageTaskMapper;
@Override
public List<RawUsage> findList(RawUsage params){
@@ -26,6 +41,98 @@
return rawUsageMapper.selectList(query);
}
+ @Override
+ public void updateRawPackageAndStorageRack(RawUsage raw) {
+ // Step 1: 鏌ヨraw_package_id
+ LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+ .eq(ShelfRack::getNumber, raw.getId());
+ ShelfRack shelfRack = shelfRackMapper.selectOne(queryWrapper);
+ if (shelfRack == null) {
+ throw new RuntimeException("鏈壘鍒颁笌鎸囧畾璐ф灦ID鍏宠仈鐨勫師鏂欏寘淇℃伅");
+ }
+
+
+ // Step 2: 鏇存柊raw_package琛�
+ RawUsage rawUsage=new RawUsage();
+
+ rawUsage.setState("绌洪棽");
+ rawUsage.setId(shelfRack.getRawPackageId());
+ rawUsageMapper.updateById(rawUsage);
+
+ // Step 3: 鏇存柊storage_rack琛�
+
+ ShelfRack rack = new ShelfRack();
+ rack.setState("绌洪棽");
+ rack.setRawPackageId(null); // 璁剧疆RawPackageId涓虹壒瀹氱殑绌哄�硷紝渚嬪0
+ LambdaQueryWrapper<ShelfRack> queryWrapper2 = Wrappers.lambdaQuery(ShelfRack.class)
+ .eq(ShelfRack::getNumber, raw.getId());
+ shelfRackMapper.update(rack, queryWrapper2);
+
+
+ }
+
+
+
+
+
+ @Override
+ public void inStorage(RawUsageAndShelfRack raw) {
+ RawUsage rawPackage = new RawUsage();
+ BeanUtils.copyProperties(raw,rawPackage);
+ rawPackage.setRawType(raw.getRawThickness() + raw.getColor());
+ rawPackage.setState("浣跨敤涓�");
+ rawPackage.setLeftPieces(rawPackage.getPieces());
+ rawUsageMapper.insert(rawPackage);
+
+ // 鏇存柊鏋惰〃
+ ShelfRack rack = new ShelfRack();
+ rack.setState("浣跨敤涓�");
+ rack.setRawPackageId(rawPackage.getId()); // 璁剧疆RawPackageId涓虹壒瀹氱殑绌哄�硷紝渚嬪0
+ LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+ .eq(ShelfRack::getNumber, raw.getNumber());
+ shelfRackMapper.update(rack, queryWrapper);
+ StorageTask storageTask=new StorageTask();
+ storageTask.setTaskState("绛夊緟涓�");
+ storageTask.setTaskType("浠庝粨浣嶅埌鍚婅浣�");
+ storageTask.setLoadRack(raw.getLoadRack());
+ storageTask.setShelfRack(raw.getNumber());
+ storageTask.setRouteGroup(1);
+ storageTask.setStartTime(now());
+ storageTask.setFinishTime(now());
+ insertTask(storageTask);
+
+
+ }
+
+
+ @Override
+ public void outStorage(RawUsageAndShelfRack raw) {
+ ShelfRack rack = new ShelfRack();
+ rack.setState("绛夊緟鍑哄簱");
+ rack.setRawPackageId(null); // 璁剧疆RawPackageId涓虹壒瀹氱殑绌哄�硷紝渚嬪0
+ LambdaQueryWrapper<ShelfRack> queryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+ .eq(ShelfRack::getNumber, raw.getNumber());
+ shelfRackMapper.update(rack, queryWrapper);
+
+
+ StorageTask storageTask=new StorageTask();
+ storageTask.setTaskState("绛夊緟涓�");
+ storageTask.setTaskType("浠庝粨浣嶅埌鍚婅浣�");
+ storageTask.setLoadRack(raw.getLoadRack());
+ storageTask.setShelfRack(raw.getNumber());
+ storageTask.setRouteGroup(1);
+ storageTask.setStartTime(now());
+ storageTask.setFinishTime(now());
+ insertTask(storageTask);
+ }
+
+
+ public void insertTask(StorageTask storageTask) {
+ storageTaskMapper.insert(storageTask);
+
+ }
+
+
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java
index cc226f8..91ad4a7 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java
@@ -1,5 +1,6 @@
package com.mes.shelfrack.controller;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
import com.mes.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -105,7 +106,7 @@
@ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
@GetMapping("/findshelfrack")
public Result findshelfrack() {
- List<Map<String, Object>> result = shelfRackService.selectshelf_rack();
+ List<RawUsageAndShelfRack> result = shelfRackService.selectshelf_rack();
return Result.success(result);
}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/ShelfRack.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/ShelfRack.java
index b980e3f..f01efbf 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/ShelfRack.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/ShelfRack.java
@@ -2,6 +2,9 @@
import java.io.Serializable;
import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -27,8 +30,8 @@
/**
*
*/
- @ApiModelProperty(" ")
- private Long id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 鏋跺瓙缂栧彿
@@ -46,7 +49,7 @@
* 鍖呭彿缂栧彿
*/
@ApiModelProperty("鍖呭彿缂栧彿")
- private Long rawPackageId;
+ private Integer rawPackageId;
/**
* 淇敼鏃堕棿
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java
new file mode 100644
index 0000000..2af2aca
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java
@@ -0,0 +1,76 @@
+package com.mes.shelfrack.entity.request;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+
+@EqualsAndHashCode(callSuper = false)
+public class RawUsageAndShelfRack {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("ID")
+ private Integer id;
+
+ @ApiModelProperty("鐜荤拑绫诲瀷")
+ private String rawType;
+
+ @ApiModelProperty("瀹藉害")
+ private Float rawWidth;
+
+ @ApiModelProperty("楂樺害")
+ private Float rawHeight;
+
+ @ApiModelProperty("鍘氬害")
+ private Float rawThickness;
+
+ @ApiModelProperty("棰滆壊")
+ private String color;
+
+ @ApiModelProperty("鎬绘暟閲�")
+ private Integer pieces;
+
+ @ApiModelProperty("鍓╀綑鏁伴噺")
+ private Integer leftPieces;
+
+ @ApiModelProperty("鐗╂枡缂栫爜")
+ private String qrcode;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+
+ private Date createTime;
+
+
+
+ private Date productionTime;
+
+ @ApiModelProperty("鎵规鍙�")
+ private String batchId;
+
+ @ApiModelProperty("鏋跺瓙缂栧彿")
+ private String number;
+
+ @ApiModelProperty("宸ヤ綔鐘舵��")
+ private String state;
+
+ @ApiModelProperty("鍖呭彿缂栧彿")
+ private Integer rawPackageId;
+
+
+ private Date modTime;
+
+ @ApiModelProperty("鍚敤鐘舵��")
+ private String enableState;
+
+ @ApiModelProperty("涓婄墖浣嶇紪鍙�")
+ private String loadRack;
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
index bea1293..87bbbfd 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
import java.util.List;
import java.util.Map;
@@ -18,5 +19,5 @@
public interface ShelfRackMapper extends MPJBaseMapper<ShelfRack> {
- List<Map<String, Object>> selectshelf_rack();
+ List<RawUsageAndShelfRack> selectshelf_rack();
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/ShelfRackService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/ShelfRackService.java
index bb0bdb0..39102e0 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/ShelfRackService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/ShelfRackService.java
@@ -2,6 +2,7 @@
import com.mes.shelfrack.entity.ShelfRack;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
import java.util.List;
import java.util.Map;
@@ -14,6 +15,6 @@
List<ShelfRack> findList(ShelfRack params);
- List<Map<String, Object>> selectshelf_rack();
+ List<RawUsageAndShelfRack> selectshelf_rack();
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java
index 85d4adc..8171037 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java
@@ -7,6 +7,7 @@
import com.github.yulichang.toolkit.JoinWrappers;
import com.mes.common.config.Const;
import com.mes.rawusage.entity.RawUsage;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
import com.mes.shelfrack.mapper.ShelfRackMapper;
import com.mes.shelfrack.entity.ShelfRack;
import com.mes.shelfrack.service.ShelfRackService;
@@ -51,7 +52,7 @@
@Override
- public List<Map<String, Object>> selectshelf_rack() {
+ public List<RawUsageAndShelfRack> selectshelf_rack() {
return baseMapper.selectshelf_rack();
}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/controller/StorageTaskController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/controller/StorageTaskController.java
index 0678559..0157fee 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/controller/StorageTaskController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/controller/StorageTaskController.java
@@ -1,5 +1,7 @@
package com.mes.storagetask.controller;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
import com.mes.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -106,9 +108,22 @@
@ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
@GetMapping("/findTasks")
public Result findLatestTasks() {
- List<Map<String, Object>> result = storageTaskService.Tasks();
+ List<StorageTaskRequest> result = storageTaskService.Tasks();
return Result.success(result);
}
+
+ @ApiOperation(value = "浠诲姟鎿嶄綔", notes = "浠诲姟鎿嶄綔")
+ @PostMapping("/taskUpdate")
+ public Result taskUpdate(@RequestBody Map<String, Object> storageTaskMap) {
+
+ StorageTask task = new StorageTask();
+ task.setType((String) storageTaskMap.get("Type")); // 鍋囪Type鏄瓨鍌ㄥ湪Map涓殑涓�涓敭
+ task.setId((int) storageTaskMap.get("id"));
+ storageTaskService.taskUpdate(task);
+ return Result.success();
+ }
+
+
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/StorageTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/StorageTask.java
index 612f8e3..e037a41 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/StorageTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/StorageTask.java
@@ -2,11 +2,15 @@
import java.io.Serializable;
import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
import org.springframework.stereotype.Component;
/**
@@ -27,9 +31,8 @@
/**
*
*/
- @ApiModelProperty(" ")
- private Long id;
-
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 浠诲姟绫诲瀷
*/
@@ -72,6 +75,8 @@
@ApiModelProperty("瀹屾垚鏃堕棿")
private Date finishTime;
+ @ApiModelProperty("鍓嶇浠诲姟绫诲瀷")
+ private String Type;
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java
new file mode 100644
index 0000000..9c7dd09
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java
@@ -0,0 +1,77 @@
+package com.mes.storagetask.entity.request;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class StorageTaskRequest {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ @ApiModelProperty("浠诲姟绫诲瀷")
+ private String taskType;
+
+
+
+ @ApiModelProperty("鍓嶇浠诲姟绫诲瀷")
+ private String Type;
+
+ /**
+ * 宸ヤ綔鐘舵��
+ */
+ @ApiModelProperty("宸ヤ綔鐘舵��")
+ private String taskState;
+
+ /**
+ * 浠撳偍鏋跺彿
+ */
+ @ApiModelProperty("浠撳偍鏋跺彿")
+ private String shelfRack;
+
+ /**
+ * 涓婄墖浣嶇紪鍙�
+ */
+ @ApiModelProperty("涓婄墖浣嶇紪鍙�")
+ private String loadRack;
+
+ /**
+ * 绾胯矾
+ */
+ @ApiModelProperty("绾胯矾")
+ private Integer routeGroup;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date startTime;
+
+ /**
+ * 瀹屾垚鏃堕棿
+ */
+ @ApiModelProperty("瀹屾垚鏃堕棿")
+ private Date finishTime;
+
+ @ApiModelProperty("棰滆壊")
+ private String color;
+
+ @ApiModelProperty("鍘氬害")
+ private Float rawThickness;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
index f2737a1..ca5a765 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -19,6 +20,6 @@
public interface StorageTaskMapper extends BaseMapper<StorageTask> {
- List<Map<String, Object>> selectTasks();
+ List<StorageTaskRequest> selectTasks();
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/StorageTaskService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/StorageTaskService.java
index bad474f..b46250b 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/StorageTaskService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/StorageTaskService.java
@@ -2,6 +2,7 @@
import com.mes.storagetask.entity.StorageTask;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
import java.util.List;
import java.util.Map;
@@ -17,5 +18,7 @@
Map<String, Optional<StorageTask>> findLatestTasks();
- List<Map<String, Object>> Tasks();
+ List<StorageTaskRequest> Tasks();
+
+ void taskUpdate(StorageTask storageTask);
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
index 04cb2d7..876d202 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
@@ -3,6 +3,14 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.loadposition.entity.LoadPosition;
+import com.mes.loadposition.mapper.LoadPositionMapper;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.mapper.RawUsageMapper;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.mapper.ShelfRackMapper;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
import com.mes.storagetask.mapper.StorageTaskMapper;
import com.mes.storagetask.entity.StorageTask;
import com.mes.storagetask.service.StorageTaskService;
@@ -25,6 +33,13 @@
@Autowired
private StorageTaskMapper storageTaskMapper;
+ @Autowired
+ private LoadPositionMapper loadPositionMapper;
+ @Autowired
+ private ShelfRackMapper shelfRackMapper;
+ @Autowired
+ private RawUsageMapper rawUsageMapper;
+
@Override
public List<StorageTask> findList(StorageTask params){
@@ -56,12 +71,97 @@
@Override
- public List<Map<String, Object>> Tasks() {
+ public List<StorageTaskRequest> Tasks() {
return baseMapper.selectTasks();
}
+ @Override
+ public void taskUpdate(StorageTask request) {
+ Integer taskId = request.getId();
+ String taskType = request.getTaskType();
+ String Type = request.getType();
+ String taskState = request.getTaskState();
+ String shelfRack = request.getShelfRack();
+ String loadRack = request.getLoadRack();
+
+ if ("閲嶆柊寮�濮�".equals(Type)) {
+ StorageTask storageTask = new StorageTask();
+ storageTask.setTaskState("绛夊緟涓�");
+ LambdaQueryWrapper<StorageTask> queryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+ .eq(StorageTask::getId, request.getId());
+ storageTaskMapper.update(request,queryWrapper);
+ } else if ("瀹屾垚".equals(Type)) {
+ StorageTask existingTask = storageTaskMapper.selectById(taskId);
+ if (existingTask != null && "姝e湪宸ヤ綔".equals(existingTask.getTaskState())) {
+ if ("浠庝粨浣嶅埌涓婄墖浣�".equals(taskType) || "浠庝粨浣嶅埌鍚婅浣�".equals(taskType)) {
+ LoadPosition loadPosition = new LoadPosition();
+ loadPosition.setState("姝e湪浣跨敤");
+ loadPosition.setStorageTaskId(request.getId());
+ LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+ .eq(LoadPosition::getNumber, request.getLoadRack());
+ loadPositionMapper.update(loadPosition, queryWrapper);
+ StorageTask storageTask = new StorageTask();
+ storageTask.setTaskState("姝e湪浣跨敤");
+ LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+ .eq(StorageTask::getId, request.getId());
+ storageTaskMapper.update(request,StorageTaskqueryWrapper);
+ } else if ("浠庝笂鐗囦綅鍒颁粨浣�".equals(taskType)) {
+ LoadPosition loadPosition = new LoadPosition();
+ loadPosition.setState("浣跨敤涓�");
+ loadPosition.setStorageTaskId(null);
+ LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+ .eq(LoadPosition::getNumber, request.getLoadRack());
+ loadPositionMapper.update(loadPosition, queryWrapper);
+ ShelfRack loshelfRack = new ShelfRack();
+ LambdaQueryWrapper<RawUsage> RawUsagequeryWrapper = Wrappers.lambdaQuery(RawUsage.class)
+ .eq(RawUsage::getId,loshelfRack.getRawPackageId());
+ RawUsage RawUsage = rawUsageMapper.selectOne(RawUsagequeryWrapper);
+ if(RawUsage.getLeftPieces()==0){
+ loshelfRack.setState("绌洪棽");
+ }else {
+ loshelfRack.setState("浣跨敤涓�");
+ }
+ LambdaQueryWrapper<ShelfRack> loshelfRackqueryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+ .eq(ShelfRack::getNumber, request.getLoadRack());
+ shelfRackMapper.update(loshelfRack, loshelfRackqueryWrapper);
+ } else if ("浠庡悐瑁呬綅鍒颁粨浣�".equals(taskType)) {
+ LoadPosition loadPosition = new LoadPosition();
+ loadPosition.setState("绌洪棽");
+ loadPosition.setStorageTaskId(null);
+ LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+ .eq(LoadPosition::getNumber, request.getLoadRack());
+ loadPositionMapper.update(loadPosition, queryWrapper);
+ ShelfRack loshelfRack = new ShelfRack();
+ LambdaQueryWrapper<RawUsage> RawUsagequeryWrapper = Wrappers.lambdaQuery(RawUsage.class)
+ .eq(RawUsage::getId,loshelfRack.getRawPackageId());
+ RawUsage RawUsage = rawUsageMapper.selectOne(RawUsagequeryWrapper);
+ if(RawUsage.getLeftPieces()==1){
+ loshelfRack.setEnableState("鍚敤");
+ }else {
+ loshelfRack.setEnableState(loshelfRack.getEnableState());
+ }
+ loadPosition.setState("浣跨敤涓�");
+ LambdaQueryWrapper<ShelfRack> loshelfRackqueryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+ .eq(ShelfRack::getNumber, request.getLoadRack());
+ shelfRackMapper.update(loshelfRack, loshelfRackqueryWrapper);
+ }
+ StorageTask storageTask = new StorageTask();
+ storageTask.setTaskState("宸插畬鎴�");
+ LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+ .eq(StorageTask::getId, request.getId());
+ storageTaskMapper.update(storageTask, StorageTaskqueryWrapper);
+ }
+ } else if ("鍒犻櫎".equals(Type)) {
+
+ LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+ .eq(StorageTask::getId, request.getId());
+ storageTaskMapper.delete(StorageTaskqueryWrapper);
+ }
+ }
+
+
}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/ShelfRackMapper.xml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/ShelfRackMapper.xml
index 0e13316..576b9a9 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/ShelfRackMapper.xml
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/ShelfRackMapper.xml
@@ -2,15 +2,24 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mes.shelfrack.mapper.ShelfRackMapper">
-
- <select id="selectshelf_rack" resultType="java.util.Map">
- <![CDATA[
- SELECT a.number, b.raw_type, b.raw_width, b.raw_height, b.raw_thickness, b.left_pieces, a.mod_time, a.enable_state, b.pieces,
- datediff(now(), b.create_time) as rukutime,
- concat(if(ROUND(b.left_pieces / b.pieces * 100, 0) < 20, 20, ROUND(b.left_pieces / b.pieces * 100, 0)), '%') as bfb
- FROM shelf_rack AS a
- LEFT JOIN raw_usage AS b ON a.raw_package_id = b.id
- ]]>
- </select>
+ <resultMap id="ShelfRackResultMap" type="com.mes.shelfrack.entity.request.RawUsageAndShelfRack">
+ <result property="number" column="number"/>
+ <result property="rawType" column="raw_type"/>
+ <result property="rawWidth" column="raw_width"/>
+ <result property="rawHeight" column="raw_height"/>
+ <result property="rawThickness" column="raw_thickness"/>
+ <result property="enableState" column="enable_state"/>
+ <result property="pieces" column="pieces"/>
+ <result property="createTime" column="createTime" />
+ <result property="batchId" column="batch_id"/>
+ </resultMap>
+ <select id="selectshelf_rack" resultMap="ShelfRackResultMap">
+ <![CDATA[
+ SELECT a.number, b.raw_type, b.raw_width, b.raw_height, b.raw_thickness, a.enable_state, b.pieces,
+ b.batch_id,DATE_FORMAT(b.create_time, '%Y-%m-%d %H:%i:%s') as createTime
+ FROM shelf_rack AS a
+ LEFT JOIN raw_usage AS b ON a.raw_package_id = b.id
+ ]]>
+</select>
</mapper>
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/StorageTaskMapper.xml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/StorageTaskMapper.xml
index 9fb2ca0..a526c7c 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/StorageTaskMapper.xml
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/StorageTaskMapper.xml
@@ -3,8 +3,21 @@
<mapper namespace="com.mes.storagetask.mapper.StorageTaskMapper">
+ <resultMap id="StorageTaskRequest" type="com.mes.storagetask.entity.request.StorageTaskRequest">
+ <result property="loadRack" column="load_rack"/>
+ <result property="color" column="color"/>
+ <result property="taskState" column="task_state"/>
+ <result property="shelfRack" column="shelf_rack"/>
+ <result property="startTime" column="start_time"/>
+ <result property="rawThickness" column="raw_thickness"/>
+ <result property="routeGroup" column="route_group"/>
+ <result property="id" column="id" />
+ <result property="taskType" column="task_type"/>
+ </resultMap>
- <select id="selectTasks" resultType="java.util.Map">
+
+
+ <select id="selectTasks" resultMap="StorageTaskRequest">
<![CDATA[
SELECT d.*, g.raw_thickness, g.color
FROM (
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
index 4f0bd8b..022d334 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/test/java/mes/GlassStorageModuleApplicationTest.java
@@ -1,6 +1,9 @@
package mes;
import com.mes.GlassStorageApplication;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.service.RawUsageService;
+import com.mes.shelfrack.entity.ShelfRack;
import com.mes.shelfrack.service.ShelfRackService;
import com.mes.storagetask.entity.StorageTask;
import com.mes.storagetask.service.StorageTaskService;
@@ -30,6 +33,8 @@
private StorageTaskService storageTaskService;
@Autowired
private ShelfRackService shelfRackService;
+ @Autowired
+ private RawUsageService rawUsageService;
@Test
@@ -57,6 +62,13 @@
+ @Test
+ public void updateRawPackageAndStorageRack() {
+ RawUsage raw=new RawUsage();
+
+ raw.setId(null);
+ rawUsageService.updateRawPackageAndStorageRack(raw);
+ }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
index 2c15c6c..f6a69e4 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -77,17 +77,9 @@
// 璋冪敤 DownWorkstationService 涓殑鏂规硶娓呴櫎鎸囧畾宸ヤ綅ID鐨勪俊鎭�
int workstationId = (int) requestData.get("workstationId");
- int totalWorkstations = downWorkstationService.getTotalQuantity(workstationId);
- int downWorkstations = downWorkstationService.getRacksNumber(workstationId);
-
-
- if (downWorkstations == totalWorkstations) {
downWorkstationService.clearFlowCardId(workstationId);
return Result.build(200, "娓呴櫎宸ヤ綅淇℃伅鎴愬姛", 1);
- } else {
- // 濡傛灉鎬绘暟閲忓拰钀芥灦鏁伴噺涓嶄竴鑷达紝杩斿洖閿欒鍝嶅簲
- return Result.build(500, "娓呴櫎宸ヤ綅淇℃伅澶辫触", 1);
- }
+
// 鏋勫缓鍝嶅簲鏁版嵁
--
Gitblit v1.8.0