From b0656b315e2eb8376d53ad237e58bdd6e65e31ec Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期四, 01 八月 2024 14:55:50 +0800
Subject: [PATCH] 原片仓储接口完善
---
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java | 11
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/StorageTaskMapper.xml | 15
hangzhoumesParent/gateway/src/main/resources/application.yml | 2
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/controller/StorageTaskController.java | 17
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/storagetask/mapper/StorageTaskMapper.java | 3
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 | 103 ++-
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
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java | 102 +++
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/GlassStorage/MaterialRackManagement.vue | 1136 +++++++++++++++++++++----------------
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/service/RawUsageService.java | 19
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java | 3
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.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
24 files changed, 1,206 insertions(+), 586 deletions(-)
diff --git a/UI-Project/src/utils/api.js b/UI-Project/src/utils/api.js
index 6fce493..9be06af 100644
--- a/UI-Project/src/utils/api.js
+++ b/UI-Project/src/utils/api.js
@@ -1,10 +1,12 @@
// src/services/api.js
-import request from 'request';
+import request from '../utils/request';
+import { ElMessage } from 'element-plus';
-const BASE_URL = 'glassStorage/api/rawUsage'; // Replace with your actual backend base URL
+ // Replace with your actual backend base URL
// 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`;
@@ -14,7 +16,7 @@
json: true,
};
-
+
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if (error) {
@@ -89,47 +91,68 @@
});
};
-// Function to update an existing raw usage
-export const updateRawUsage = (rawUsage) => {
- const url = `${BASE_URL}`;
- const options = {
- method: 'put',
- 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;
+ }
};
-// Function to delete a raw usage by ID
-export const deleteRawUsage = (id) => {
- const url = `${BASE_URL}/${id}`;
- const options = {
- method: 'delete',
- url,
- json: true
- };
-
- return new Promise((resolve, reject) => {
- request(options, (error, response, body) => {
- if (error) {
- reject(new Error(error.message));
- } else {
- resolve(body);
- }
- });
- });
+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
diff --git a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
index 0f132b5..6ca0948 100644
--- a/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
+++ b/UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
@@ -1,144 +1,174 @@
<template>
- <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 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>
-<!-- 宸︿晶鎸夐挳缁� -->
-<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-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>
+ <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>
-</div>
-<el-dialog v-model="Hidden" top="10vh" width="80%" >
+ <!-- 鎿嶄綔鍒� -->
+ <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: 200px"
+ :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" label="搴撲綅鍙�"></el-table-column>
- <el-table-column prop="type" label="绫诲瀷"></el-table-column>
- <el-table-column prop="length" label="闀垮害(mm)"></el-table-column>
- <el-table-column prop="height" label="楂樺害(mm)"></el-table-column>
- <el-table-column prop="thickness" label="鍘氬害(mm)"></el-table-column>
- <el-table-column prop="quantity" label="鏁伴噺"></el-table-column>
- <el-table-column prop="entry_time" label="鍏ュ簱鏃堕棿"></el-table-column>
- <el-table-column prop="batchnumber" 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
- align="center"
- label="鏂欐灦鐘舵��"
- min-width="80"
- prop="shelf_status"
->
-<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>
+ 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 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> -->
+ <el-table-column
+ align="center"
+ label="浠诲姟鐘舵��"
+ min-width="80"
+ prop="taskState"
+ >
+ <template #default="scope">
+ <el-tag :type="getTagType2(scope.row.taskState)">
+ {{ scope.row.taskState == "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>
- <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="tasktableData"
- style="width: 98%; height: 150px"
- @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>
</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 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="鍏ュ簱"
@@ -148,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>
@@ -162,91 +192,137 @@
</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>
@@ -254,363 +330,413 @@
<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';
+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';
+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 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('鍙栨秷鍒犻櫎鎿嶄綔');
- });
+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 handleCheckout = (row) => {
- // 浣跨敤 Element UI 鐨� MessageBox.confirm 鏂规硶杩涜浜屾纭
- ElMessageBox.confirm('纭畾瑕佹墽琛屽嚭搴撴搷浣滃悧锛�', '纭鍑哄簱', {
- confirmButtonText: '纭',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
- console.log('鎵ц鍑哄簱鎿嶄綔', row);
- }).catch(() => {
- // 鐐瑰嚮鍙栨秷鎸夐挳鐨勫洖璋冿紝涓嶆墽琛屼换浣曟搷浣�
- console.log('鍙栨秷鍑哄簱鎿嶄綔');
- });
+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 handleInbound = () => {
- // 鎵撳紑鍏ュ簱瀵硅瘽妗�
- dialogVisible.value = true;
- };
+const getTagType = (status) => {
+ return status === 1 ? "success" : "danger";
+ // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
+};
- const storage = () => {
- // 鎵撳紑鍏ュ簱瀵硅瘽妗�
- Hidden.value = true;
- };
-
+const toggleStatus = (row) => {
+ // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
+ row.enableState = 1 - row.enableState; // Toggle between 0 and 1
+ // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
+};
+const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/storageTask`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+ // 鏇存柊 tableData 鐨勬暟鎹�
- const handleCloseDialog = () => {
- // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆琛ㄥ崟鏁版嵁
- formData.value = {
- shelf: '',
- color: '',
- width: '',
- height: '',
- thickness: '',
- quantity: ''
+ 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;
+ });
+
+
+
+
+
+};
+
+onMounted(() => {
+ initializeWebSocket(socketUrl, handleMessage);
+});
+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(() => {
+ // 鐐瑰嚮纭鎸夐挳鐨勫洖璋冿紝鎵ц鍑哄簱鎿嶄綔
+
+ const intNumber = {
+ id: parseInt(row.number),
};
- dialogVisible.value = false;
- };
+ deleteRawUsage(intNumber);
- 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: ''
+ 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{
+.img-ypcc {
margin-left: 80px;
- background-image:url('../../assets/ypcc.png');
+ 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:0px
+ 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 {
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/GlassStorageModule/src/main/java/com/mes/job/push.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
index 934155a..700a1c1 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java
@@ -2,7 +2,9 @@
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;
@@ -10,7 +12,9 @@
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;
@@ -29,8 +33,9 @@
log.info("鍙戦�佷换鍔′俊鎭拰鏋跺瓙淇℃伅");
JSONObject jsonObject = new JSONObject();
- List<Map<String, Object>> rack = shelfRackService.selectshelf_rack();
- List<Map<String, Object>> tasks = storageTaskService.Tasks();
+ List<RawUsageAndShelfRack> rack = shelfRackService.selectshelf_rack();
+ List<StorageTaskRequest> tasks = storageTaskService.Tasks();
+
jsonObject.append("rack",rack);
jsonObject.append("tasks",tasks);
log.info(jsonObject.toString());
@@ -39,7 +44,7 @@
for (WebSocketServer webserver : sendwServer) {
if (webserver != null&&webserver.session.isOpen()) {
log.info("宸插彂閫�");
- webserver.sendMessage(jsonObject.toString());
+ 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);
+ }
--
Gitblit v1.8.0