From 4170df95c30c0e761ce14ed1a33d1bccfe542c34 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 18 九月 2024 16:27:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java | 99 ++
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java | 119 ++
UI-Project/src/views/GlassStorage/rawfilmstorage.vue | 454 ++++++++++
hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-dev.yml | 25
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java | 82 +
hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml | 25
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 25
hangzhoumesParent/moduleService/yiwumes/pom.xml | 34
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java | 28
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java | 138 +++
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java | 113 ++
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java | 14
UI-Project/src/views/GlassStorage/GlassStorage.vue | 49 +
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java | 26
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java | 129 ++
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java | 19
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java | 36
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java | 15
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java | 20
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java | 28
hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml | 35
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/job/push.java | 54 +
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java | 23
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java | 24
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java | 16
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java | 4
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/push.java | 10
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java | 24
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java | 68 +
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java | 32
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java | 110 ++
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml | 5
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml | 5
hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java | 79 +
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java | 14
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java | 25
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java | 167 +++
hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml | 18
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java | 61 +
hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml | 2
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java | 65 +
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java | 76 +
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java | 18
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java | 79 +
hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java | 77 +
hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml | 30
46 files changed, 2,538 insertions(+), 61 deletions(-)
diff --git a/UI-Project/src/views/GlassStorage/GlassStorage.vue b/UI-Project/src/views/GlassStorage/GlassStorage.vue
new file mode 100644
index 0000000..d0567d3
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/GlassStorage.vue
@@ -0,0 +1,49 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+ indexFlag=index
+}
+
+</script>
+
+<template>
+ <!-- <div id="main-div"> -->
+
+
+ <div id="main-body">
+ <router-view />
+ </div>
+ <!-- </div> -->
+</template>
+
+<style scoped>
+#main-div{
+ width: 100%;
+ height: 100%;
+}
+#div-title{
+ height: 2%;
+ width: 100%;
+}
+#searchButton{
+ margin-top: -5px;
+ margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+ width: 100%;
+ height: 95%;
+ /* margin-top: 1%; */
+}
+#select{
+ margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+ color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
new file mode 100644
index 0000000..bfdf487
--- /dev/null
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -0,0 +1,454 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import type { TableColumnCtx } from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+import { WebSocketHost ,host} from '@/utils/constants'
+import request from "@/utils/request"
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
+const tableDataa = ref([])
+const tableDatab = ref([])
+const { t } = useI18n()
+const add = ref(false)
+const dialogFormVisiblea = ref(false)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const timeRange = ref(["2022-01-01", "2025-01-01"])
+let webSocket: WebSocket | null = null;
+const value = ref('')
+const options = [
+ {
+ value: t('film.warehousing1'),
+ label: t('film.warehousing1'),
+ },
+ {
+ value: t('film.warehousing2'),
+ label: t('film.warehousing2'),
+ }
+]
+const report = ref({
+ enableType: '',
+ enableState: '',
+});
+onMounted(() => {
+ connectWebSocket();
+ // socket = initializeWebSocket(socketUrl, handleMessage);
+});
+onUnmounted(() => {
+ if (webSocket) {
+ webSocket.close();
+ }
+});
+ // onUnmounted(() => {
+ // if (socket) {
+ // closeWebSocket(socket);
+ // }
+ // });
+let socket = null;
+const connectWebSocket = () => {
+ if (!webSocket) {
+ const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+ webSocket = new WebSocket(socketUrl);
+ webSocket.onmessage = (event) => {
+ const data = JSON.parse(event.data);
+ if(data.tasks !=null){
+ tableDataa.value = data.tasks[0]
+ console.log(data.tasks[0]);
+
+ }
+ if(data.rack !=null){
+ tableDatab.value = data.rack[0]
+ }
+ // const data = JSON.parse(event.data);
+ // const scaleFactor = 1621.78/6000;
+ // const scaleFactory = 750/3300;
+ // if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
+ // const newRects = data.currentCutTerritory[0].map(rect => {
+ // const existingRect = adjustedRects.value.find(r => r.glass_id === rect.glass_id);
+
+
+ // });
+ // adjustedRects.value = newRects;
+ // }
+ };
+ }
+};
+// const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
+// const handleMessage = (data) => {
+// // if(data.tasks!=null){
+// // tableData.splice(0, tableData.length, ...data.prioritylist[0]);
+// // }
+// if(data.tasks !=null){
+// tableDataa.value = data.tasks[0]
+// console.log(data.tasks[0]);
+
+// }
+// if(data.rack !=null){
+// tableDatab.value = data.rack[0]
+// }
+// };
+ // 鍒犻櫎
+ const opena = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('film.dedelete'),
+ t('productStock.prompt'),
+ {
+ confirmButtonText: t('productStock.yes'),
+ cancelButtonText: t('productStock.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id])
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.msg);
+ }
+ }
+ } catch (error) {
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+ // 绂佺敤
+ const openb = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('film.dedisable'),
+ t('productStock.prompt'),
+ {
+ confirmButtonText: t('productStock.yes'),
+ cancelButtonText: t('productStock.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id])
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.msg);
+ }
+ }
+ } catch (error) {
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+ // 鍑哄簱
+ const openc = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('film.deoutbound'),
+ t('productStock.prompt'),
+ {
+ confirmButtonText: t('productStock.yes'),
+ cancelButtonText: t('productStock.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id])
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.msg);
+ }
+ }
+ } catch (error) {
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+ const response = await request.post("/glassStorage/raw_glass_storage_task/selectRawglasstask", {
+ createTime: timeRange.value[0],
+ patternQuantity: timeRange.value[1],
+ enableType: report.value.enableType,
+ enableState: report.value.enableState
+ })
+ if (response.code === 200) {
+ tableDataa.value = response.data;
+ ElMessage.success(response.message);
+ if (webSocket) {
+ webSocket.close();
+ webSocket = null;
+ }
+ } else {
+ connectWebSocket();
+ ElMessage.error(response.message);
+ }
+};
+// 鏄惁绂佺敤
+const toggleEnableState = async (row: any) => {
+ if (!row.deviceId) {
+ ElMessage.error(t('basicData.updatanull'));
+ return;
+ }
+ const newState = row.enableState === 1 ? 0 : 1;
+ try {
+ // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��
+ const response = await request.post('/glassStorage/rawGlassStorageDetails/updateEnableState', { deviceId: row.deviceId, enableState: newState });
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ row.enableState = newState;
+ } else {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊璇锋眰閿欒
+ ElMessage.error(t('basicData.glassnull'));
+ }
+};
+const handleEdit = (row) => {
+ dialogFormVisiblec.value = true;
+};
+function getStatusType1(enableType) {
+switch (enableType) {
+ case 1:
+ return 'info';
+ case 2:
+ return 'warning';
+ case 3:
+ return 'success';
+}
+}
+function getStatusText1(enableType) {
+switch (enableType) {
+ case 1:
+ return t('film.stocke');//鍏ュ簱
+ case 2:
+ return t('film.outbound');//鍑哄簱
+ case 3:
+ return t('film.dispatch');//璋冨害
+}
+}
+function getStatusType2(enableState) {
+switch (enableState) {
+ case 1:
+ return 'info';
+ case 2:
+ return 'warning';
+ case 3:
+ return 'success';
+}
+}
+function getStatusText2(enableState) {
+switch (enableState) {
+ case 1:
+ return t('film.built');//鏂板缓
+ case 2:
+ return t('film.execution');//鎵ц涓�
+ case 3:
+ return t('film.finish');//瀹屾垚
+}
+}
+onBeforeUnmount(() => {
+ closeWebSocket();
+});
+</script>
+<template>
+ <div>
+ <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">
+ <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisiblea = true">{{ $t('film.mes') }}</el-button>
+ <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('film.warehousing') }}</el-button>
+ <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
+ :start-placeholder="$t('film.starttime')" :end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
+ <el-select v-model="report.enableType" clearable :placeholder="$t('film.taskstatus')" style="margin-left: 10px;" >
+ <el-option :label="$t('film.built')" value="1"></el-option>
+ <el-option :label="$t('film.execution')" value="2"></el-option>
+ <el-option :label="$t('film.finish')" value="3"></el-option>
+ </el-select>
+ <el-select v-model="report.enableState" clearable :placeholder="$t('film.tasktype')" style="margin-left: 10px;" >
+ <el-option :label="$t('film.stocke')" value="1"></el-option>
+ <el-option :label="$t('film.outbound')" value="2"></el-option>
+ <el-option :label="$t('film.dispatch')" value="3"></el-option>
+ </el-select>
+ <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('film.inquire') }}</el-button>
+ </div>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+ <el-table height="300" ref="table"
+ :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="enableId" align="center" :label="$t('film.enableid')"/>
+ <el-table-column prop="originateSlot" align="center" :label="$t('film.originateslot')"/>
+ <el-table-column prop="endSlot" align="center" :label="$t('film.endslot')"/>
+ <el-table-column prop="patternQuantity" align="center" :label="$t('film.patternquantity')"/>
+ <el-table-column
+ align="center"
+ :label="$t('film.enabletype')"
+ prop="enableType"
+ >
+ <template #default="scope">
+ <el-tag :type="getStatusType1(scope.row.enableType)">
+ {{ getStatusText1(scope.row.enableType) }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ align="center"
+ :label="$t('film.enablestate')"
+ prop="enableState"
+ >
+ <template #default="scope">
+ <el-tag :type="getStatusType2(scope.row.enableState)">
+ {{ getStatusText2(scope.row.enableState) }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" />
+
+ </el-table>
+ </div>
+ </el-card>
+ <div class="awatch">
+ <img src="../../assets/ypcc.png" alt="" style="width: 100%;height: 120%;margin-left: 10px;position: relative;margin-top: -20px;">
+
+</div>
+ <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%" >
+ <el-table ref="table" style="margin-top: 20px;height: 700px;"
+ :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80"/>
+ <el-table-column prop="patternWidth" align="center" :label="$t('film.width')" min-width="80" />
+ <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
+ <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
+ <el-table-column prop="filmsId" align="center" :label="$t('film.films')" min-width="80" />
+ <el-table-column prop="remainQuantity" align="center" :label="$t('film.remainquantity')" min-width="120" />
+ <el-table-column
+ align="center"
+ :label="$t('film.enablestate')"
+ min-width="80"
+ prop="enablestate"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="scope.row.enableState == 1 ? 'success' : 'danger'"
+ @click="toggleEnableState(scope.row)"
+ >
+ {{ scope.row.enableState == 1 ? $t('film.start') : $t('film.disable')}}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('film.delete') }}</el-button>
+ <el-button size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+</el-dialog>
+<el-dialog v-model="dialogFormVisibleb" top="15vh" width="60%">
+ <div style="margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="150px">
+ <el-form label-width="70vm" label-position="right">
+ <el-row >
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
+ <el-input :placeholder="$t('film.inwidth')" v-model="number" autocomplete="off" />
+ </el-form-item>
+ </div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
+ <el-input :placeholder="$t('film.inheight')" v-model="number" autocomplete="off" />
+ </el-form-item></div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
+ <el-input :placeholder="$t('film.inthickness')" v-model="number" autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item :label="$t('film.filmsa')" :required="true" style="width: 17vw;">
+ <el-input :placeholder="$t('film.infilms')" v-model="number" autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
+ <el-input :placeholder="$t('film.inquantity')" v-model="number" autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item :label="$t('film.inwarehousing')" :required="true" style="width: 17vw">
+ <el-select :placeholder="$t('film.selectwarehousing')">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item></div>
+ </div>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleConfirm">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+</el-dialog>
+<el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%">
+ <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
+ <el-form size="mini" label-width="100px">
+ <el-form label-width="210px" label-position="right">
+ <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 25vw">
+ <el-input v-model="workstationId" autocomplete="off" />
+ </el-form-item>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleConfirm">
+ {{ $t('reportWork.sure') }}
+ </el-button>
+ <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ </div>
+</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%;}
+.awatch{
+ height: 400px;
+ width: 1500px;
+ max-width: 100%;
+}
+#dialog-footer {
+ text-align: center;
+ margin-top: -15px;
+}
+</style>
\ No newline at end of file
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 0096d59..9135a79 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
@@ -1,28 +1,22 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
-
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
import com.mes.rawglassstation.entity.RawGlassStorageStation;
import com.mes.rawglassstation.service.RawGlassStorageStationService;
import com.mes.rawglasstask.entity.RawGlassStorageTask;
import com.mes.rawglasstask.service.RawGlassStorageTaskService;
-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.scheduling.annotation.Scheduled;
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
@@ -46,7 +40,7 @@
JSONObject jsonObject = new JSONObject();
List<RawGlassStorageDetails> rack = rawGlassStorageDetailsService.list();
List<RawGlassStorageStation> state = rawGlassStorageStationService.list();
- List<RawGlassStorageTask> tasks = rawGlassStorageTaskService.selectTasks();
+ List<RawGlassStorageTask> tasks = rawGlassStorageTaskService.list();
jsonObject.append("rack",rack);
jsonObject.append("state",state);
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
index 2904608..a8f2f38 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
@@ -1,21 +1,39 @@
package com.mes.rawglassdetails.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
* </p>
*
* @author wf
* @since 2024-09-10
*/
@RestController
-@RequestMapping("/raw_glass_storage_details/raw-glass-storage-details")
+@RequestMapping("/rawGlassStorageDetails")
public class RawGlassStorageDetailsController {
+ @Autowired
+// RawGlassStorageDetailsService rawGlassStorageDetailsService;
+ private RawGlassStorageDetailsService rawGlassStorageDetailsService;
+ @ApiOperation("宸ヤ綅鐘舵��")
+ @PostMapping("/updateEnableState")
+ @ResponseBody
+ public Result<Boolean> updateStatus(@RequestBody Integer enableState) {
+ boolean result = rawGlassStorageDetailsService.updateRawGlassStorageDetails(String.valueOf(enableState));
+ if (enableState == 1) {
+ return Result.build(1, "鍚敤", result);
+ } else {
+ return Result.build(0, "绂佺敤", result);
+ }
+ }
+
+
}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
index 888b6bb..cff3d2e 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/RawGlassStorageDetails.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
+import java.util.Date;
+
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -57,7 +59,7 @@
/**
* 鍒涘缓鏃堕棿
*/
- private LocalDateTime createTime;
+ private Date createTime;
/**
* 鍓╀綑鏁伴噺
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
index 4e50b54..5c8cd03 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
@@ -1,21 +1,17 @@
package com.mes.rawglassdetails.service;
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
import java.util.List;
/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
*/
public interface RawGlassStorageDetailsService extends IService<RawGlassStorageDetails> {
List<RawGlassStorageDetails> selectDetails();
-
boolean updateRawGlassStorageDetails(String films_id);//瑕佸ぇ鍐欒繖涓�
/**
*鍒犻櫎琛�
@@ -27,4 +23,4 @@
* @return boolean
*/
boolean insertRawGlassStorageDetails(RawGlassStorageDetails rw);
-}
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
index 031e115..771ad09 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -2,30 +2,32 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper;
import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
*/
@Service
-public abstract class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService {
+@Slf4j
+public class RawGlassStorageDetailsServiceImpl extends ServiceImpl<RawGlassStorageDetailsMapper, RawGlassStorageDetails> implements RawGlassStorageDetailsService {
@Override
public boolean updateRawGlassStorageDetails(String films_id) {
UpdateWrapper<RawGlassStorageDetails> wrapper = new UpdateWrapper<>(); //杩欎釜绫诲瀷瀹氫箟閿欎簡锛屼笉搴旇鏄痶asking
wrapper.set("films_id","1005")
- .eq( "films_id",films_id);
+ .eq( "films_id",films_id);
return update(wrapper);//杩欎釜鏂规硶榛樿杩斿洖鐨勫氨鏄痓ool绫诲瀷 鎵�鏈夊彲浠ョ洿鎺eturn杩欎釜鏂规硶锛宱k浜嗭紝浣犳甯稿垱寤烘柟娉曞幓涓婁竴灞傚垱
}
@@ -35,11 +37,10 @@
QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("device_id", device_id);
return remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool
-
}
@Override
- //杩斿洖绫诲瀷 鏂规硶鍚� 浼犺緭鍊�
+ //杩斿洖绫诲瀷 鏂规硶鍚� 浼犺緭鍊�
public List<RawGlassStorageDetails> selectDetails() {
// QueryWrapper<RawGlassStorageDetails>queryWrapper=new QueryWrapper<>();
// queryWrapper.eq("id",rs.getId());
@@ -51,4 +52,4 @@
return this.save(rw);
}
-}
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
index 5d16c85..30dcd2a 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/RawGlassStorageStationService.java
@@ -1,22 +1,18 @@
package com.mes.rawglassstation.service;
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
-import com.mes.rawglassstation.entity.RawGlassStorageStation;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
import java.util.List;
/**
- * <p>
- * 鏈嶅姟绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
*/
public interface RawGlassStorageStationService extends IService<RawGlassStorageStation> {
List<RawGlassStorageStation> selectStations();
boolean updateRawGlassStorageStation(String slot);
boolean deleteRawGlassStorageStation(String device_id);
boolean insertRawGlassStorageStation(RawGlassStorageStation rw);
-}
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
index 457ef85..353f1b8 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/service/impl/RawGlassStorageStationServiceImpl.java
@@ -2,26 +2,25 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.rawglassstation.entity.RawGlassStorageStation;
import com.mes.rawglassstation.mapper.RawGlassStorageStationMapper;
import com.mes.rawglassstation.service.RawGlassStorageStationService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author wf
- * @since 2024-09-10
+ * @author system
+ * @since 2024-07-09 14:51:27
*/
@Service
-public abstract class RawGlassStorageStationServiceImpl extends ServiceImpl<RawGlassStorageStationMapper, RawGlassStorageStation> implements RawGlassStorageStationService {
- public List<RawGlassStorageStation> selectDetails() {
+@Slf4j
+public class RawGlassStorageStationServiceImpl extends ServiceImpl<RawGlassStorageStationMapper, RawGlassStorageStation> implements RawGlassStorageStationService {
+ @Override
+ public List<RawGlassStorageStation> selectStations() {
return list();
}
@Override
@@ -43,4 +42,7 @@
public boolean insertRawGlassStorageStation(RawGlassStorageStation rw) {
return this.save(rw);
}
-}
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
index 0866915..97de824 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/controller/RawGlassStorageTaskController.java
@@ -1,8 +1,14 @@
package com.mes.rawglasstask.controller;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
-
import org.springframework.web.bind.annotation.RestController;
/**
@@ -14,8 +20,14 @@
* @since 2024-09-10
*/
@RestController
-@RequestMapping("/raw_glass_storage_task/raw-glass-storage-task")
+@RequestMapping("/raw_glass_storage_task")
public class RawGlassStorageTaskController {
-
+ @Autowired
+ private RawGlassStorageTaskService rwService; //杩欓噷鏄綘瀹氫箟璋冪敤鐨剆ervice锛岃繖涓槸鎶ュ伐鐨�
+ @ApiOperation("鍘熺墖浠撳偍鏁版嵁鏌ヨ")
+ @PostMapping("/selectRawglasstask")
+ public Result selectDamage(@RequestBody RawGlassStorageTask rw) {
+ return Result.build(200,"鏌ヨ鎴愬姛", rwService.selectTasking(rw));
+ }
}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
index 0249fa8..8026eab 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/entity/RawGlassStorageTask.java
@@ -20,14 +20,35 @@
public class RawGlassStorageTask implements Serializable {
private static final long serialVersionUID = 1L;
+// public Object getEndTime;
- @TableId(value = "id", type = IdType.AUTO)
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
+
+ /**
+ * 浠诲姟ID
+ */
+ private Integer enableId;
/**
* 璧峰鏍煎瓙
*/
private Integer originateSlot;
+
+ /**
+ * 鐩爣鏍煎瓙
+ */
+ private Integer endSlot;
+
+ /**
+ * 鍘熺墖鏁伴噺
+ */
+ private String patternQuantity;
+
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ private Integer enableType;
/**
* 浠诲姟鐘舵��
@@ -37,7 +58,8 @@
/**
* 鍒涘缓鏃堕棿
*/
- private LocalDateTime createTime;
+ private String createTime;
+
}
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
new file mode 100644
index 0000000..6afab45
--- /dev/null
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -0,0 +1,65 @@
+package com.mes.rawglasstask.service.impl;
+
+import com.baomidou.mybatisplus.core.assist.ISqlRunner;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.pp.entity.request.Reportingdamage;
+import com.mes.rawglasstask.entity.RawGlassStorageTask;
+import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
+import com.mes.rawglasstask.service.RawGlassStorageTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+@Slf4j
+public class RawGlassRawGlassStorageTaskServiceImpl extends ServiceImpl<RawGlassStorageTaskMapper, RawGlassStorageTask> implements RawGlassStorageTaskService {
+ @Override
+ public List<RawGlassStorageTask> selectTask() {
+ return list();
+ }
+
+ @Override
+ public List<RawGlassStorageTask> selectTasking(RawGlassStorageTask rw) {
+ QueryWrapper<RawGlassStorageTask> queryWrapper = new QueryWrapper<>();
+ //涓嬮潰杩欎釜鍒楁槸鏌ヨ瀛楁锛屼笉瑕佸彲浠ュ垹鎺夐粯璁ゆ煡璇㈠叏閮�
+ queryWrapper.ge("create_time", rw.getCreateTime())//澶т簬鏃堕棿
+ .le("create_time",rw.getPatternQuantity())//灏忎簬鏃堕棿
+ .groupBy("enable_id");//鎺掑簭瀛楁
+ if(rw.getEnableType()!=null){
+ queryWrapper.eq("enable_type", rw.getEnableType());
+ }if(rw.getEnableState()!=null){
+ queryWrapper.eq("enable_state", rw.getEnableState());
+ }
+ return baseMapper.selectList(queryWrapper);
+// return list(queryWrapper);
+ }
+ @Override
+ public boolean insertRawGlassStorageTask(RawGlassStorageTask rw) {
+ return this.save(rw);
+ }
+ @Override
+ public boolean updateRawGlassStorageTask(String originate_slot) {
+ UpdateWrapper<RawGlassStorageTask> wrapper = new UpdateWrapper<>();
+ wrapper.set("originate_slot","1005")
+ .eq( "originate_slot",originate_slot);
+ return update(wrapper);
+ }
+
+ @Override
+ public boolean deleteRawGlassStorageTask(String id) {
+ QueryWrapper<RawGlassStorageTask> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("id", id);
+ return remove(queryWrapper);
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
index 782f39a..ed9d83e 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application-prod.yml
@@ -5,7 +5,7 @@
strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
datasource:
hangzhoumes:
- url: jdbc:mysql://127.0.0.1:3306/yiwumes?serverTimezone=GMT%2b8
+ url: jdbc:mysql://10.153.19.150:3306/yiwumes?serverTimezone=GMT%2b8
username: root
password: beibo.123/
driver-class-name: com.mysql.cj.jdbc.Driver
diff --git a/hangzhoumesParent/moduleService/yiwumes/pom.xml b/hangzhoumesParent/moduleService/yiwumes/pom.xml
new file mode 100644
index 0000000..3b4c457
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>moduleService</artifactId>
+ <groupId>com.mes</groupId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>glassStorage</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>5.2.4</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.8.9</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+ <properties>
+ <maven.compiler.source>8</maven.compiler.source>
+ <maven.compiler.target>8</maven.compiler.target>
+ </properties>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java
new file mode 100644
index 0000000..1d461dc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/GlassStorageApplication.java
@@ -0,0 +1,28 @@
+package com.mes;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/7 14:36RRRR
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2WebMvc
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+@EnableScheduling
+public class GlassStorageApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(GlassStorageApplication.class, args);
+ }
+
+}
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/job/push.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/job/push.java
new file mode 100644
index 0000000..263f5f7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/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/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java
new file mode 100644
index 0000000..1824915
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/controller/LoadPositionController.java
@@ -0,0 +1,99 @@
+package com.mes.loadposition.controller;
+
+import com.mes.loadposition.entity.LoadPosition;
+import com.mes.loadposition.service.LoadPositionService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/loadPosition")
+@Api(tags = " 鎺у埗鍣�")
+public class LoadPositionController {
+
+ @Autowired
+ private LoadPositionService loadPositionService;
+
+ /**
+ * 鍒楄〃鏌ヨ
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @PostMapping("/findList")
+ public Result findList(@RequestBody LoadPosition params) {
+ List<LoadPosition> result = loadPositionService.findList(params);
+ return Result.success(result);
+ }
+
+ /**
+ * 鏌ヨ
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @GetMapping("/{id}")
+ public Result findById(@PathVariable("id") Long id) {
+ LoadPosition loadPosition = loadPositionService.getBaseMapper().selectById(id);
+ return Result.success(loadPosition);
+ }
+
+ /**
+ * 鏂板
+ *
+ * @param loadPosition
+ * @return
+ */
+ @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PostMapping
+ public Result insert( @RequestBody LoadPosition loadPosition) {
+ boolean result = loadPositionService.save(loadPosition);
+ return Result.success(result);
+ }
+
+ /**
+ * 淇敼
+ *
+ * @param loadPosition
+ * @return
+ */
+ @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PutMapping
+ public Result update( @RequestBody LoadPosition loadPosition) {
+ boolean result = loadPositionService.updateById(loadPosition);
+ return Result.success(result);
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+ @DeleteMapping("/{id}")
+ public Result delete(@PathVariable("id") Long id) {
+ int result = loadPositionService.getBaseMapper().deleteById(id);
+ return Result.success(result);
+ }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java
new file mode 100644
index 0000000..a5ec526
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/entity/LoadPosition.java
@@ -0,0 +1,79 @@
+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;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.stereotype.Component;
+
+import java.io.Serializable;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("load_position")
+@ApiModel(value = "LoadPosition", description = " ")
+public class LoadPosition implements Serializable{
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鏋跺瓙缂栧彿
+ */
+ @ApiModelProperty("鏋跺瓙缂栧彿")
+ private String number;
+
+ /**
+ * 鏈哄櫒缂栧彿
+ */
+ @ApiModelProperty("鏈哄櫒缂栧彿")
+ private Long machineId;
+
+ /**
+ * 鍚敤鏍囪
+ */
+ @ApiModelProperty("鍚敤鏍囪")
+ private String flag;
+
+ /**
+ * 宸ヤ綔鐘舵��
+ */
+ @ApiModelProperty("宸ヤ綔鐘舵��")
+ private String state;
+
+ /**
+ * 浠撳偍浠诲姟缂栧彿
+ */
+ @ApiModelProperty("浠撳偍浠诲姟缂栧彿")
+ private Integer storageTaskId;
+
+ /**
+ * 涓婄墖浣嶇被鍨�
+ */
+ @ApiModelProperty("涓婄墖浣嶇被鍨�")
+ private Integer typeFlag;
+
+ /**
+ * 绾胯矾
+ */
+ @ApiModelProperty("绾胯矾")
+ private Integer routeGroup;
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java
new file mode 100644
index 0000000..8ab100f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java
@@ -0,0 +1,16 @@
+package com.mes.loadposition.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.loadposition.entity.LoadPosition;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+
+public interface LoadPositionMapper extends BaseMapper<LoadPosition> {
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml
new file mode 100644
index 0000000..7311228
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.mapper.LoadPositionMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java
new file mode 100644
index 0000000..42d41c0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/LoadPositionService.java
@@ -0,0 +1,19 @@
+package com.mes.loadposition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.loadposition.entity.LoadPosition;
+
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface LoadPositionService extends IService<LoadPosition> {
+
+ List<LoadPosition> findList(LoadPosition params);
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java
new file mode 100644
index 0000000..5e9c990
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/loadposition/service/impl/LoadPositionServiceImpl.java
@@ -0,0 +1,32 @@
+package com.mes.loadposition.service.impl;
+
+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.service.LoadPositionService;
+import com.mes.loadposition.mapper.LoadPositionMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+public class LoadPositionServiceImpl extends ServiceImpl<LoadPositionMapper, LoadPosition> implements LoadPositionService {
+
+ @Autowired
+ private LoadPositionMapper loadPositionMapper;
+
+ @Override
+ public List<LoadPosition> findList(LoadPosition params){
+ LambdaQueryWrapper<LoadPosition> query = Wrappers.lambdaQuery(LoadPosition.class);
+ return loadPositionMapper.selectList(query);
+ }
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java
new file mode 100644
index 0000000..edd0b4d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/controller/RawUsageController.java
@@ -0,0 +1,119 @@
+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;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.web.bind.annotation.*;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.service.RawUsageService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import java.util.List;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/rawUsage")
+@Api(tags = " 鎺у埗鍣�")
+public class RawUsageController {
+
+ @Autowired
+ private RawUsageService rawUsageService;
+
+ /**
+ * 鍒楄〃鏌ヨ
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @PostMapping("/findList")
+ public Result findList(@RequestBody RawUsage params) {
+ List<RawUsage> result = rawUsageService.findList(params);
+ return Result.success(result);
+ }
+
+ /**
+ * 鏌ヨ
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @GetMapping("/{id}")
+ public Result findById(@PathVariable("id") Long id) {
+ RawUsage rawUsage = rawUsageService.getById(id);
+ return Result.success(rawUsage);
+ }
+
+ /**
+ * 鏂板
+ *
+ * @param rawUsage
+ * @return
+ */
+ @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PostMapping
+ public Result insert( @RequestBody RawUsage rawUsage) {
+ boolean result = rawUsageService.save(rawUsage);
+ return Result.success(result);
+ }
+
+ /**
+ * 淇敼
+ *
+ * @param rawUsage
+ * @return
+ */
+ @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PostMapping("/updaterawUsage")
+ public Result updaterawUsage(@RequestBody RawUsage rawUsage) {
+ boolean result = rawUsageService.updateById(rawUsage);
+ return Result.success(result);
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+ @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/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java
new file mode 100644
index 0000000..a67e11f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/entity/RawUsage.java
@@ -0,0 +1,110 @@
+package com.mes.rawusage.entity;
+
+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.springframework.stereotype.Component;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("raw_usage")
+@ApiModel(value = "RawUsage", description = " ")
+public class RawUsage implements Serializable{
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鐜荤拑绫诲瀷
+ */
+ @ApiModelProperty("鐜荤拑绫诲瀷")
+ private String rawType;
+
+ /**
+ * 瀹藉害
+ */
+ @ApiModelProperty("瀹藉害")
+ private Float rawWidth;
+
+ /**
+ * 楂樺害
+ */
+ @ApiModelProperty("楂樺害")
+ private Float rawHeight;
+
+ /**
+ * 鍘氬害
+ */
+ @ApiModelProperty("鍘氬害")
+ private Float rawThickness;
+
+ /**
+ * 鐘舵��
+ */
+ @ApiModelProperty("鐘舵��")
+ private String state;
+
+ /**
+ * 棰滆壊
+ */
+ @ApiModelProperty("棰滆壊")
+ private String color;
+
+ /**
+ * 鎬绘暟閲�
+ */
+ @ApiModelProperty("鎬绘暟閲�")
+ private Integer pieces;
+
+ /**
+ * 鍓╀綑鏁伴噺
+ */
+ @ApiModelProperty("鍓╀綑鏁伴噺")
+ private Integer leftPieces;
+
+ /**
+ * 鐗╂枡缂栫爜
+ */
+ @ApiModelProperty("鐗╂枡缂栫爜")
+ private String qrcode;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date createTime;
+
+ /**
+ * 鐢熶骇鏃ユ湡
+ */
+ @ApiModelProperty("鐢熶骇鏃ユ湡")
+ private Date productionTime;
+
+ /**
+ * 鎵规鍙�
+ */
+ @ApiModelProperty("鎵规鍙�")
+ private String batchId;
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java
new file mode 100644
index 0000000..a136af1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java
@@ -0,0 +1,15 @@
+package com.mes.rawusage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.rawusage.entity.RawUsage;
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+
+public interface RawUsageMapper extends BaseMapper<RawUsage> {
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml
new file mode 100644
index 0000000..228c012
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.rawusage.mapper.RawUsageMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java
new file mode 100644
index 0000000..225c764
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/RawUsageService.java
@@ -0,0 +1,36 @@
+package com.mes.rawusage.service;
+
+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;
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface RawUsageService extends IService<RawUsage> {
+
+ 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/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
new file mode 100644
index 0000000..13d2e22
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/rawusage/service/impl/RawUsageServiceImpl.java
@@ -0,0 +1,138 @@
+package com.mes.rawusage.service.impl;
+
+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.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
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+public class RawUsageServiceImpl extends ServiceImpl<RawUsageMapper, RawUsage> implements RawUsageService {
+
+ @Autowired
+ private RawUsageMapper rawUsageMapper;
+ @Autowired
+ private ShelfRackMapper shelfRackMapper;
+ @Autowired
+ private StorageTaskMapper storageTaskMapper;
+
+ @Override
+ public List<RawUsage> findList(RawUsage params){
+ LambdaQueryWrapper<RawUsage> query = Wrappers.lambdaQuery(RawUsage.class);
+ 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/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java
new file mode 100644
index 0000000..a6396a0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/controller/ShelfRackController.java
@@ -0,0 +1,113 @@
+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;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.web.bind.annotation.*;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.service.ShelfRackService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/shelfRack")
+@Api(tags = " 鎺у埗鍣�")
+public class ShelfRackController {
+
+ @Autowired
+ private ShelfRackService shelfRackService;
+
+ /**
+ * 鍒楄〃鏌ヨ
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @PostMapping("/findList")
+ public Result findList(@RequestBody ShelfRack params) {
+ List<ShelfRack> result = shelfRackService.findList(params);
+ return Result.success(result);
+ }
+
+ /**
+ * 鏌ヨ
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @GetMapping("/{id}")
+ public Result findById(@PathVariable("id") Long id) {
+ ShelfRack shelfRack = shelfRackService.getBaseMapper().selectById(id);
+ return Result.success(shelfRack);
+ }
+
+ /**
+ * 鏂板
+ *
+ * @param shelfRack
+ * @return
+ */
+ @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PostMapping
+ public Result insert( @RequestBody ShelfRack shelfRack) {
+ boolean result = shelfRackService.save(shelfRack);
+ return Result.success(result);
+ }
+
+ /**
+ * 淇敼
+ *
+ * @param shelfRack
+ * @return
+ */
+ @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PutMapping
+ public Result update( @RequestBody ShelfRack shelfRack) {
+ boolean result = shelfRackService.updateById(shelfRack);
+ return Result.success(result);
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+ @DeleteMapping("/{id}")
+ public Result delete(@PathVariable("id") Long id) {
+ int result = shelfRackService.getBaseMapper().deleteById(id);
+ return Result.success(result);
+ }
+
+
+ @ApiOperation(value = "鏋跺瓙琛ㄦ牸鏌ヨ",notes = "鏋跺瓙琛ㄦ牸鏌ヨ",produces = "application/json")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @GetMapping("/findshelfrack")
+ public Result findshelfrack() {
+ List<RawUsageAndShelfRack> result = shelfRackService.selectshelf_rack();
+ return Result.success(result);
+ }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java
new file mode 100644
index 0000000..0984808
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/ShelfRack.java
@@ -0,0 +1,68 @@
+package com.mes.shelfrack.entity;
+
+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.springframework.stereotype.Component;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("shelf_rack")
+@ApiModel(value = "ShelfRack", description = " ")
+public class ShelfRack implements Serializable{
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鏋跺瓙缂栧彿
+ */
+ @ApiModelProperty("鏋跺瓙缂栧彿")
+ private String number;
+
+ /**
+ * 宸ヤ綔鐘舵��
+ */
+ @ApiModelProperty("宸ヤ綔鐘舵��")
+ private String state;
+
+ /**
+ * 鍖呭彿缂栧彿
+ */
+ @ApiModelProperty("鍖呭彿缂栧彿")
+ private Integer rawPackageId;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty("淇敼鏃堕棿")
+ private Date modTime;
+
+ /**
+ * 鍚敤鐘舵��
+ */
+ @ApiModelProperty("鍚敤鐘舵��")
+ private String enableState;
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/entity/request/RawUsageAndShelfRack.java
new file mode 100644
index 0000000..8ac00d6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/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/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
new file mode 100644
index 0000000..cb1fcc7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
@@ -0,0 +1,23 @@
+package com.mes.shelfrack.mapper;
+
+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;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+
+public interface ShelfRackMapper extends MPJBaseMapper<ShelfRack> {
+
+
+ List<RawUsageAndShelfRack> selectshelf_rack();
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java
new file mode 100644
index 0000000..5afff60
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/ShelfRackService.java
@@ -0,0 +1,20 @@
+package com.mes.shelfrack.service;
+
+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;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface ShelfRackService extends IService<ShelfRack> {
+
+ List<ShelfRack> findList(ShelfRack params);
+
+ List<RawUsageAndShelfRack> selectshelf_rack();
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java
new file mode 100644
index 0000000..df21e90
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/shelfrack/service/impl/ShelfRackServiceImpl.java
@@ -0,0 +1,61 @@
+package com.mes.shelfrack.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+public class ShelfRackServiceImpl extends ServiceImpl<ShelfRackMapper, ShelfRack> implements ShelfRackService {
+
+ @Autowired
+ private ShelfRackMapper shelfRackMapper;
+
+ @Override
+ public List<ShelfRack> findList(ShelfRack params){
+ LambdaQueryWrapper<ShelfRack> query = Wrappers.lambdaQuery(ShelfRack.class);
+ return shelfRackMapper.selectList(query);
+ }
+
+//
+// public void yourMethodName() {
+// List<Map<String, Object>> resultList = shelfRackMapper.selectMaps(
+// new LambdaQueryWrapper<ShelfRack>()
+// .select(ShelfRack::getNumber, RawUsage::getRawType, RawUsage::getRawWidth,
+// RawUsage::getRawHeight, RawUsage::getRawThickness, ShelfRack::getModTime,
+// ShelfRack::getEnableState, RawUsage::getPieces, RawUsage::getLeftPieces,
+// "(datediff(now(), raw_usage.create_time)) as rukuTime",
+// "(concat(if(ROUND(raw_usage.left_pieces / #{param1} * 100, 0) < 20, 20, ROUND(raw_usage.left_pieces / #{param1} * 100, 0)), '%')) as bfb")
+// .leftJoin(RawUsage.class, RawUsage::getId, ShelfRack::getRawPackageId)
+// .orderByAsc(ShelfRack::getNumber)
+// );
+//
+// // Process resultList as needed
+// }
+
+
+
+ @Override
+ public List<RawUsageAndShelfRack> selectshelf_rack() {
+ return baseMapper.selectshelf_rack();
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java
new file mode 100644
index 0000000..bfafd14
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/controller/StorageTaskController.java
@@ -0,0 +1,129 @@
+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;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.web.bind.annotation.*;
+import com.mes.storagetask.entity.StorageTask;
+import com.mes.storagetask.service.StorageTaskService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@RestController
+@RequestMapping("/api/storageTask")
+@Api(tags = " 鎺у埗鍣�")
+public class StorageTaskController {
+
+ @Autowired
+ private StorageTaskService storageTaskService;
+
+ /**
+ * 鍒楄〃鏌ヨ
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "鍒楄〃鏌ヨ",notes = "鍒楄〃鏌ヨ",produces = "application/json")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @PostMapping("/findList")
+ public Result findList(@RequestBody StorageTask params) {
+ List<StorageTask> result = storageTaskService.findList(params);
+ return Result.success(result);
+ }
+
+ /**
+ * 鏌ヨ
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ", notes = "鏌ヨ璇︽儏")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @GetMapping("/{id}")
+ public Result findById(@PathVariable("id") Long id) {
+ StorageTask storageTask = storageTaskService.getBaseMapper().selectById(id);
+ return Result.success(storageTask);
+ }
+
+ /**
+ * 鏂板
+ *
+ * @param storageTask
+ * @return
+ */
+ @ApiOperation(value = "鏂板", notes = "鏂板鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PostMapping
+ public Result insert( @RequestBody StorageTask storageTask) {
+ boolean result = storageTaskService.save(storageTask);
+ return Result.success(result);
+ }
+
+ /**
+ * 淇敼
+ *
+ * @param storageTask
+ * @return
+ */
+ @ApiOperation(value = "淇敼", notes = "淇敼鏁版嵁")
+ @ApiResponses({@ApiResponse(code = 200, message = "鎿嶄綔鎴愬姛")})
+ @PutMapping
+ public Result update( @RequestBody StorageTask storageTask) {
+ boolean result = storageTaskService.updateById(storageTask);
+ return Result.success(result);
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param id
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎", notes = "鍒犻櫎鏁版嵁")
+ @DeleteMapping("/{id}")
+ public Result delete(@PathVariable("id") Long id) {
+ int result = storageTaskService.getBaseMapper().deleteById(id);
+ return Result.success(result);
+ }
+
+
+ @ApiOperation(value = "浠诲姟鏌ヨ",notes = "浠诲姟鏌ヨ",produces = "application/json")
+ @ApiResponses({@ApiResponse(code = 200, message = "鏌ヨ鎴愬姛")})
+ @GetMapping("/findTasks")
+ public Result findLatestTasks() {
+ 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/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java
new file mode 100644
index 0000000..0b23459
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/StorageTask.java
@@ -0,0 +1,82 @@
+package com.mes.storagetask.entity;
+
+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;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Data
+@Component
+@EqualsAndHashCode(callSuper = false)
+@TableName("storage_task")
+@ApiModel(value = "StorageTask", description = " ")
+public class StorageTask implements Serializable{
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ *
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ @ApiModelProperty("浠诲姟绫诲瀷")
+ private String taskType;
+
+ /**
+ * 宸ヤ綔鐘舵��
+ */
+ @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 Type;
+
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/entity/request/StorageTaskRequest.java
new file mode 100644
index 0000000..cda3ebf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/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/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
new file mode 100644
index 0000000..4978419
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
@@ -0,0 +1,25 @@
+package com.mes.storagetask.mapper;
+
+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;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ *
+ * @author system
+ * @since 2024-07-09 14:51:27
+ *
+ */
+@Repository
+public interface StorageTaskMapper extends BaseMapper<StorageTask> {
+
+
+ List<StorageTaskRequest> selectTasks();
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java
new file mode 100644
index 0000000..b890452
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/StorageTaskService.java
@@ -0,0 +1,24 @@
+package com.mes.storagetask.service;
+
+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;
+import java.util.Optional;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+public interface StorageTaskService extends IService<StorageTask> {
+
+ List<StorageTask> findList(StorageTask params);
+
+ Map<String, Optional<StorageTask>> findLatestTasks();
+
+ List<StorageTaskRequest> Tasks();
+
+ void taskUpdate(StorageTask storageTask);
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
new file mode 100644
index 0000000..b7f9110
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
@@ -0,0 +1,167 @@
+package com.mes.storagetask.service.impl;
+
+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;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * @author system
+ * @since 2024-07-09 14:51:27
+ */
+@Service
+@Slf4j
+public class StorageTaskServiceImpl extends ServiceImpl<StorageTaskMapper, StorageTask> implements StorageTaskService {
+
+ @Autowired
+ private StorageTaskMapper storageTaskMapper;
+ @Autowired
+ private LoadPositionMapper loadPositionMapper;
+ @Autowired
+ private ShelfRackMapper shelfRackMapper;
+ @Autowired
+ private RawUsageMapper rawUsageMapper;
+
+
+ @Override
+ public List<StorageTask> findList(StorageTask params){
+ LambdaQueryWrapper<StorageTask> query = Wrappers.lambdaQuery(StorageTask.class);
+ return storageTaskMapper.selectList(query);
+ }
+
+
+ public Map<String, Optional<StorageTask>> findLatestTasks() {
+ Map<String, Optional<StorageTask>> latestTasks = new HashMap<>();
+
+ // 鏌ヨ鏈�鏂扮殑宸插畬鎴愪换鍔�
+ LambdaQueryWrapper<StorageTask> completedWrapper = new LambdaQueryWrapper<>();
+ completedWrapper.eq(StorageTask::getTaskType, "宸插畬鎴�")
+ .orderByDesc(StorageTask::getId)
+ .last("LIMIT 1");
+ Optional<StorageTask> latestCompletedTask = Optional.ofNullable(storageTaskMapper.selectOne(completedWrapper));
+ latestTasks.put("宸插畬鎴�", latestCompletedTask);
+
+ // 鏌ヨ鏈�鏂扮殑绛夊緟涓换鍔�
+ LambdaQueryWrapper<StorageTask> pendingWrapper = new LambdaQueryWrapper<>();
+ pendingWrapper.eq(StorageTask::getTaskType, "绛夊緟涓�")
+ .orderByDesc(StorageTask::getId);
+ Optional<StorageTask> latestPendingTask = Optional.ofNullable(storageTaskMapper.selectOne(pendingWrapper));
+ latestTasks.put("绛夊緟涓�", latestPendingTask);
+ log.info(latestTasks+"");
+ return latestTasks;
+ }
+
+
+ @Override
+ 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/yiwumes/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..53a3a66
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-dev.yml
@@ -0,0 +1,25 @@
+spring:
+ datasource:
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ hangzhoumes:
+ url: jdbc:mysql://127.0.0.1:3306/yiwumes?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ salve_hangzhoumes:
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
+ username: sa
+ password: beibo.123/
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 10.153.19.150:8848
+ redis:
+ database: 0
+ host: 127.0.0.1
+ port: 6379
+ password: 123456
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..782f39a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application-prod.yml
@@ -0,0 +1,30 @@
+spring:
+ datasource:
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ hangzhoumes:
+ url: jdbc:mysql://127.0.0.1:3306/yiwumes?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ salve_hangzhoumes:
+ url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes
+ username: sa
+ password: beibo.123/
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ pp:
+ url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+ username: root
+ password: beibo.123/
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 10.153.19.150:8848
+ redis:
+ database: 0
+ host: 10.153.19.150
+ port: 6379
+ password: 123456
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml
new file mode 100644
index 0000000..3b841eb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/application.yml
@@ -0,0 +1,18 @@
+server:
+ port: 8086
+
+spring:
+ profiles:
+ active: dev
+ application:
+ name: glassStorage
+ liquibase:
+ enabled: false
+
+
+mybatis-plus:
+ mapper-locations: classpath*:mapper/*.xml
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml
new file mode 100644
index 0000000..827ebac
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/ShelfRackMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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">
+
+ <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/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml
new file mode 100644
index 0000000..c5cf51b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/main/resources/mapper/StorageTaskMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<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" resultMap="StorageTaskRequest">
+ <![CDATA[
+ SELECT d.*, g.raw_thickness, g.color
+ FROM (
+ (SELECT * FROM storage_task AS a WHERE a.task_state = '宸插畬鎴�' ORDER BY a.id DESC LIMIT 1)
+ UNION ALL
+ (SELECT * FROM storage_task AS c WHERE c.task_state = '姝e湪宸ヤ綔')
+ UNION ALL
+ (SELECT * FROM storage_task AS b WHERE b.task_state = '绛夊緟涓�')
+ ) AS d
+ LEFT JOIN shelf_rack AS f ON f.id = d.shelf_rack
+ LEFT JOIN raw_usage AS g ON g.id = f.raw_package_id
+ ]]>
+ </select>
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java b/hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java
new file mode 100644
index 0000000..022d334
--- /dev/null
+++ b/hangzhoumesParent/moduleService/yiwumes/src/test/java/mes/GlassStorageModuleApplicationTest.java
@@ -0,0 +1,79 @@
+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;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = GlassStorageApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+
+public class GlassStorageModuleApplicationTest {
+
+
+
+ @Autowired
+ private StorageTaskService storageTaskService;
+ @Autowired
+ private ShelfRackService shelfRackService;
+ @Autowired
+ private RawUsageService rawUsageService;
+
+
+ @Test
+ public void testFindPath() {
+ log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+ }
+
+ @Test
+ public void testCacheGlass() {
+ // storageTaskService.getBaseMapper().selectById(1);
+ //StorageTask storageTask=new StorageTask();
+// storageTask.setId(Long.valueOf("1"));
+// storageTask.setTaskState("1");
+// storageTaskService.updateById(storageTask);
+// storageTaskService.getBaseMapper().deleteById(1);
+ // storageTaskService.findList(storageTask);
+ ///storageTaskService.findLatestTasks();
+ storageTaskService.Tasks();
+ }
+ @Test
+ public void selectshelf_rack() {
+
+ shelfRackService.selectshelf_rack();
+ }
+
+
+
+ @Test
+ public void updateRawPackageAndStorageRack() {
+ RawUsage raw=new RawUsage();
+
+ raw.setId(null);
+ rawUsageService.updateRawPackageAndStorageRack(raw);
+ }
+
+
+
+
+
+
+
+}
\ No newline at end of file
--
Gitblit v1.8.0