From 2f9b947344a9218390b30dd2d5d141c1f6d319b9 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 07 十一月 2025 08:17:41 +0800
Subject: [PATCH] 仓储异常情况断联,任务无法执行,添加clear按钮可手动清除异常状态任务,
---
UI-Project/src/views/GlassStorage/rawfilmstorage2.vue | 95 +++++++++++++++++++++++++++++++
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java | 17 ++++-
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java | 4 +
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java | 11 +--
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java | 2
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 18 ++++--
6 files changed, 126 insertions(+), 21 deletions(-)
diff --git a/UI-Project/src/views/GlassStorage/rawfilmstorage2.vue b/UI-Project/src/views/GlassStorage/rawfilmstorage2.vue
index 226e18a..ccc8956 100644
--- a/UI-Project/src/views/GlassStorage/rawfilmstorage2.vue
+++ b/UI-Project/src/views/GlassStorage/rawfilmstorage2.vue
@@ -387,6 +387,75 @@
// catch (error) {
// }
// }
+const dialogVisible = ref(false);
+const detailsList = ref([]);
+const selectedIds = ref<string[]>([]);
+
+// 鏂板锛氬姞杞藉紓甯告暟鎹垪琛�
+const loadDetails = async () => {
+ try {
+ const response = await request.get("/glassStorage/rawGlassStorageDetails/selectDetails");
+ if (response.code === 200) {
+ detailsList.value = response.data;
+ } else {
+ ElMessage.error("鏁版嵁鍔犺浇澶辫触锛�" + response.msg);
+ }
+ } catch (error) {
+ ElMessage.error("璇锋眰澶辫触锛�" + (error as Error).message);
+ }
+};
+
+// 鏂板锛氬鐞嗚〃鏍奸�夋嫨鍙樺寲
+const handleSelectionChange = (selection: any[]) => {
+ selectedIds.value = selection.map(item => item.id);
+};
+
+// 鏂板锛氱‘璁ゅ垹闄ら�変腑鏁版嵁
+const confirmDelete = async () => {
+ if (selectedIds.value.length === 0) {
+ ElMessage.warning("Select the data you want to delete first");
+ return;
+ }
+
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.deletemessage'),
+ t('customer.prompt'),
+ {
+ confirmButtonText: t('workOrder.yes'),
+ cancelButtonText: t('workOrder.cancel'),
+ type: "warning"
+ }
+ );
+
+ if (confirmResult === "confirm") {
+ // 鎵归噺鍒犻櫎璇锋眰
+ const deletePromises = selectedIds.value.map(id =>
+ request.post(`/glassStorage/rawGlassStorageDetails/deleteData?id=${id}`)
+ );
+
+ const results = await Promise.all(deletePromises);
+ const allSuccess = results.every(res => res.code === 200);
+
+ if (allSuccess) {
+ ElMessage.success("success");
+ dialogVisible.value = false;
+ loadDetails(); // 鍒锋柊鏁版嵁
+ selectedIds.value = [];
+ } else {
+ ElMessage.error("error");
+ }
+ }
+ } catch (error) {
+ if (error !== "cancel") {
+ ElMessage.error("鍒犻櫎澶辫触锛�" + (error as Error).message);
+ }
+ }
+};
+const handleClearClick = () => {
+ dialogVisible.value = true;
+ loadDetails(); // 鎵撳紑寮圭獥鏃跺姞杞芥暟鎹�
+};
// 浠诲姟鎴愬姛澶勭悊
const successfull = async (row) => {
try {
@@ -511,6 +580,9 @@
$t('searchOrder.historicaltasks')
}}
</el-button>
+ <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleClearClick">
+ clear
+ </el-button>
<el-date-picker style="margin-left: 10px;" v-model="timeRange" type="datetimerange" format="YYYY/MM/DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss" :start-placeholder="$t('film.starttime')"
:end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
@@ -557,9 +629,9 @@
<el-table-column prop="createTime" align="center" :label="$t('film.createtime')" />
<el-table-column fixed="right" :label="$t('film.operate')" align="center">
<template #default="scope">
- <el-button :disabled="(scope.row.taskState >2)" type="text" plain @click="successfull(scope.row)">{{
+ <el-button type="text" plain @click="successfull(scope.row)">{{
$t('searchOrder.successfullyprocessed') }}</el-button>
- <el-button :disabled="(scope.row.taskState >2)" type="text" plain @click="handleptask(scope.row)">{{
+ <el-button type="text" plain @click="handleptask(scope.row)">{{
$t('searchOrder.taskfailure') }}</el-button>
</template>
</el-table-column>
@@ -603,6 +675,25 @@
}" v-show="cards[45]">
</div>
</div>
+ <el-dialog title="Select the data you want to delete first" v-model="dialogVisible" width="60%" @close="selectedIds = []">
+ <el-table :data="detailsList" border style="width: 100%; margin-bottom: 20px;"
+ @selection-change="handleSelectionChange">
+ <el-table-column prop="id" label="ID" width="80"></el-table-column>
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="slot" :label="$t('film.slot')"></el-table-column>
+ <el-table-column prop="shelf" :label="$t('reportWork.shelfnumbera')"></el-table-column>
+ <el-table-column prop="state" :label="$t('reportWork.state')" :formatter="formatState"></el-table-column>
+ <!-- 鍙牴鎹渶瑕佹坊鍔犲叾浠栧瓧娈靛垪 -->
+ </el-table>
+
+ <template #footer>
+ <el-button @click="dialogVisible = false">{{t('workOrder.cancel')}}</el-button>
+ <el-button type="danger" @click="confirmDelete" :disabled="selectedIds.length === 0">
+ {{t('reportWork.sure')}}
+ </el-button>
+ </template>
+ </el-dialog>
+
<el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
<el-table ref="table" style="margin-top: 20px;height: 700px;" :data="tableDatab" v-loading="loading"
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
index 9f83829..c224e20 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
@@ -49,4 +49,6 @@
List<RawGlassStorageDetailsDTO> patternUsage(String width, String height, String thickness, String films);
RawGlassStorageDetails generateDetails(RawGlassStorageDetails details, Integer targetSlot);
+
+ boolean deleteDetails(String id);
}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
index d774ad7..c6e84ea 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -57,16 +57,15 @@
public boolean deleteRawGlassStorageDetails(String device_id) {
QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("device_id", device_id);
- return remove(queryWrapper);//remove鎵嶆槸鍒犻櫎锛宒elete寰楃敤鍙﹀鐨勪緷璧栵紝榛樿鏂规硶鏄痳emove杩斿洖bool
+ return remove(queryWrapper);
}
@Override
- //杩斿洖绫诲瀷 鏂规硶鍚� 浼犺緭鍊�
public List<RawGlassStorageDetails> selectDetails() {
-// QueryWrapper<RawGlassStorageDetails>queryWrapper=new QueryWrapper<>();
-// queryWrapper.eq("id",rs.getId());
-// return list(queryWrapper);
- return list();
+ QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
+ queryWrapper.in("state", Const.RAW_GLASS_STATE_CAR,
+ Const.RAW_GLASS_STATE_WAIT_OUT, Const.RAW_GLASS_STATE_RUNNING);
+ return list(queryWrapper);
}
// 绌烘灦瀛愬埌鍚婅浣�
@@ -336,4 +335,11 @@
targetDetails.setState(Const.RAW_GLASS_STATE_IN);
return targetDetails;
}
+
+
+
+ @Override
+ public boolean deleteDetails(String id) {
+ return removeById(id);
+ }
}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
index ca03f36..3abdfd5 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -102,6 +102,7 @@
.eq(RawGlassStorageDetails::getSlot, task.getStartSlot()));
log.info("浠诲姟鐘舵�佸凡鏇存敼涓猴細宸插畬鎴�");
this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+ .eq(RawGlassStorageTask::getId, taskId)
.in(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW, Const.RAW_GLASS_TASK_RUNNING)
.set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_SUCCESS));
switch (taskType) {
@@ -138,7 +139,7 @@
if (taskType.equals(Const.RAW_GLASS_TASK_TYPE_IN_REQUEST)) {
rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
.set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
- .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+ .eq(RawGlassStorageDetails::getSlot, task.getEndSlot())
.in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
} else {
rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
@@ -147,6 +148,7 @@
.in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
}
this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+ .eq(RawGlassStorageTask::getId, taskId)
.in(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW, Const.RAW_GLASS_TASK_RUNNING)
.set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_FAILURE));
return Boolean.TRUE;
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
index d08724d..fbf2587 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -206,7 +206,8 @@
log.info("灏嗚鎯呰〃鐨勭姸鎬佹敼涓哄凡鍑哄簱");
rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
.set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
- .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
+ .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+ .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_CAR));
log.info("浠诲姟鐘舵�佸凡鏇存敼涓猴細宸插畬鎴�");
rawGlassStorageTaskService.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
.eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_RUNNING)
@@ -301,7 +302,7 @@
// 姝ラ2锛氭鏌ヤ换鍔″叧鑱旂殑绌烘灦瀛愮姸鎬侊紙闇�涓衡�滃緟鍏ュ簱鈥濓紝涓旂‘瀹炴槸绌烘灦瀛愶級
RawGlassStorageDetails emptyShelf = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
.eq(RawGlassStorageDetails::getSlot, inRequestTask.getStartSlot()) // 璧峰浣嶏細浠撳簱绌烘灦瀛愪綅
- .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING)); // 寰呭叆搴撶姸鎬�);
+ .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
if (emptyShelf == null) {
log.info("绌烘灦瀛愬埌鍚婅浣嶈姹備换鍔″叧鑱旂殑鏋跺瓙寮傚父锛堥潪绌烘灦瀛愭垨鐘舵�侀敊璇級锛岃烦杩囨墽琛�");
@@ -317,12 +318,6 @@
log.info("鍚婅浣峽}宸叉湁鍏宠仈鏋跺瓙锛屾棤娉曟墽琛岀┖鏋跺瓙鍒板悐瑁呬綅璇锋眰", inRequestTask.getEndSlot());
return Boolean.FALSE;
}
-
- // 姝ラ4锛氭洿鏂扮┖鏋跺瓙鐘舵�佷负鈥滄墽琛屼腑鈥�
- rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
- .eq(RawGlassStorageDetails::getSlot, emptyShelf.getSlot())
- .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
- .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
// 姝ラ5锛氭洿鏂颁换鍔$姸鎬佷负鈥滄墽琛屼腑鈥濓紝閬垮厤閲嶅鎵ц
rawGlassStorageTaskService.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
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 ac15c80..99b0fa8 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,5 +1,6 @@
package com.mes.rawglassdetails.controller;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.entity.dto.RawGlassStorageDetailsDTO;
import com.mes.rawglassdetails.entity.request.RawGlassRequest;
import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
@@ -9,10 +10,7 @@
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.validation.annotation.Validated;
-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;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@@ -151,5 +149,16 @@
return Result.build(200, "鏌ヨ鎴愬姛", rawGlassStorageDetailsService.patternUsage(width, height, thickness, films));
}
+ @ApiOperation("鏌ヨ鍘熺墖瀛樺偍璇︽儏")
+ @GetMapping("/selectDetails")
+ public Result<List<RawGlassStorageDetails>> selectDetails() {
+ return Result.build(200, "鏌ヨ鎴愬姛", rawGlassStorageDetailsService.selectDetails());
+ }
+
+ @ApiOperation("娓呴櫎寮傚父鏁版嵁")
+ @PostMapping("/deleteData")
+ public Result<Boolean> deleteDetails(String id) {
+ return Result.success(rawGlassStorageDetailsService.deleteDetails(id));
+ }
}
--
Gitblit v1.8.0