From 2825b82e8a4eca618ab3c2306de2db74a2ecbd1d Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 06 四月 2026 15:54:58 +0800
Subject: [PATCH] #任务取消优化
---
src/main/java/com/zy/asrs/controller/OpenController.java | 23 ++++++++++-
src/main/java/com/zy/asrs/controller/WrkMastController.java | 2
src/main/java/com/zy/common/service/CommonService.java | 52 ++++++++++++++++++-------
3 files changed, 59 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 062ca37..b9436ce 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -27,12 +27,15 @@
import com.zy.core.thread.StationThread;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
+import com.zy.system.service.HighPrivilegeGrantService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
+
+import jakarta.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
@@ -60,6 +63,10 @@
private ConfigService configService;
@Autowired
private DeviceConfigService deviceConfigService;
+ @Autowired
+ private HighPrivilegeGrantService highPrivilegeGrantService;
+ @Autowired
+ private HttpServletRequest request;
// 绉诲簱浠诲姟
@PostMapping("/createLocMoveTask")
@@ -137,7 +144,13 @@
if (param == null) {
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
- boolean completeTask = commonService.cancelTask(param);
+ boolean directCancel = false;
+ try {
+ highPrivilegeGrantService.assertGranted(request.getHeader("token"), "鍙栨秷浠诲姟");
+ directCancel = true;
+ } catch (CoolException ignore) {
+ }
+ boolean completeTask = commonService.cancelTask(param, directCancel);
if (completeTask) {
return R.ok();
}
@@ -163,7 +176,13 @@
if (param == null) {
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
- CancelTaskBatchResult result = commonService.cancelTaskBatch(param);
+ boolean directCancel = false;
+ try {
+ highPrivilegeGrantService.assertGranted(request.getHeader("token"), "鍙栨秷浠诲姟");
+ directCancel = true;
+ } catch (CoolException ignore) {
+ }
+ CancelTaskBatchResult result = commonService.cancelTaskBatch(param, directCancel);
return R.ok().add(result);
}
diff --git a/src/main/java/com/zy/asrs/controller/WrkMastController.java b/src/main/java/com/zy/asrs/controller/WrkMastController.java
index 9ef23d0..535c355 100644
--- a/src/main/java/com/zy/asrs/controller/WrkMastController.java
+++ b/src/main/java/com/zy/asrs/controller/WrkMastController.java
@@ -90,7 +90,7 @@
return R.error("鍙傛暟涓嶈兘涓虹┖");
}
highPrivilegeGrantService.assertGranted(request.getHeader("token"), "鍙栨秷浠诲姟");
- return commonService.cancelTask(param) ? R.ok() : R.error("浠诲姟鍙栨秷澶辫触");
+ return commonService.cancelTask(param, true) ? R.ok() : R.error("浠诲姟鍙栨秷澶辫触");
}
private <T> void convert(Map<String, Object> map, QueryWrapper<T> wrapper){
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 9169502..c34ef3d 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -124,7 +124,7 @@
return true;
}
- public boolean cancelTask(CancelTaskParam param) {
+ public boolean cancelTask(CancelTaskParam param, boolean allowDirectCancel) {
WrkMast wrkMast = null;
Integer wrkNo = param.getWrkNo();
String taskNo = param.getTaskNo();//wms浠诲姟鍙�
@@ -141,24 +141,42 @@
throw new CoolException("浠诲姟涓嶅瓨鍦�");
}
- boolean cancelSuccess = false;
- if (wrkMast.getIoType().equals(WrkIoType.IN.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_INBOUND.sts)) {
- cancelSuccess = true;
- } else if (wrkMast.getIoType().equals(WrkIoType.OUT.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_OUTBOUND.sts)) {
- cancelSuccess = true;
- } else if (wrkMast.getIoType().equals(WrkIoType.LOC_MOVE.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_LOC_MOVE.sts)) {
- cancelSuccess = true;
- } else if (wrkMast.getIoType().equals(WrkIoType.CRN_MOVE.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_CRN_MOVE.sts)) {
- cancelSuccess = true;
+ if (allowDirectCancel) {
+ boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
+ .eq("wrk_no", wrkMast.getWrkNo())
+ .set("mk", "taskCancel")
+ .set("modi_time", new Date()));
+ if (!updated) {
+ throw new CoolException("浠诲姟鍙栨秷澶辫触");
+ }
+ return true;
}
- if (cancelSuccess) {
+ Long expectedWrkSts;
+ if (wrkMast.getIoType().equals(WrkIoType.IN.id)) {
+ expectedWrkSts = WrkStsType.NEW_INBOUND.sts;
+ } else if (wrkMast.getIoType().equals(WrkIoType.OUT.id)) {
+ expectedWrkSts = WrkStsType.NEW_OUTBOUND.sts;
+ } else if (wrkMast.getIoType().equals(WrkIoType.LOC_MOVE.id)) {
+ expectedWrkSts = WrkStsType.NEW_LOC_MOVE.sts;
+ } else if (wrkMast.getIoType().equals(WrkIoType.CRN_MOVE.id)) {
+ expectedWrkSts = WrkStsType.NEW_CRN_MOVE.sts;
+ } else {
+ throw new CoolException("浠诲姟绫诲瀷涓嶆敮鎸佸彇娑�");
+ }
+
+ if (!expectedWrkSts.equals(wrkMast.getWrkSts())) {
throw new CoolException("浠诲姟宸叉墽琛岋紝鍙栨秷澶辫触");
}
- wrkMast.setMk("taskCancel");
- wrkMast.setModiTime(new Date());
- wrkMastService.updateById(wrkMast);
+ boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
+ .eq("wrk_no", wrkMast.getWrkNo())
+ .eq("wrk_sts", expectedWrkSts)
+ .set("mk", "taskCancel")
+ .set("modi_time", new Date()));
+ if (!updated) {
+ throw new CoolException("浠诲姟鐘舵�佸凡鍙樺寲锛屽彇娑堝け璐�");
+ }
return true;
}
@@ -264,6 +282,10 @@
}
public CancelTaskBatchResult cancelTaskBatch(CancelTaskBatchParam param) {
+ return cancelTaskBatch(param, false);
+ }
+
+ public CancelTaskBatchResult cancelTaskBatch(CancelTaskBatchParam param, boolean allowDirectCancel) {
if (param == null) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
}
@@ -283,7 +305,7 @@
boolean cancelStatus = false;
try {
- cancelStatus = cancelTask(cancelTaskParam);
+ cancelStatus = cancelTask(cancelTaskParam, allowDirectCancel);
} catch (Exception e) {
}
--
Gitblit v1.9.1